###name###


#####APPLET CODE

### Applet Desc.

How To Use:

  • Download ###.zip (## KB)
  • Unzip with a compression utility.

    Java Source:

    /* Sonali Calendar is a copyright of its author but may be distributed under GPL.
    See license for more details.
    */
    import java.applet.*;
    import java.awt.*;
    import java.awt.image.*;
    import java.awt.event.*;
    import java.util.*;
    import java.net.*;
    import java.lang.Math;
    
    public class calendar extends Applet implements ItemListener,MouseListener{
            URL url,mail;
            Frame frame;
            TextField year,fade,title,path,picsize;
            Choice fntcol;
            Button close,calen,home,email;
            Label msg;
            String message,error;
            String stitle,col,file,dtitle;
            Color fcol;
            Image img,pic;
            int wid,ht,yr,alpha,wide,high,imagesize;
            int pix[];
            boolean done=false,dopaint=false;
    // variables for calendar
    
            Font font1, font2;
            FontMetrics fm1,fm2;
            GregorianCalendar ucal;
            int mm[];
            int jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec;
            char day[]={'S','M','T','W','T','F','S'};
            int end[]={31,28,31,30,31,30,31,31,30,31,30,31};
            String month[]={"January","February","March","April","May","June","July","August","September","October","November","December"};
    String fcolor[]={"blue","black","cyan","darkGray","gray","green","lightGray","magenta","orange" , "pink" , "red","white","yellow"};
            int w,h,w0,h0;
            int wm,hm,dw;
            int wstart;
    
            public void paint(Graphics g){
                if(dopaint){
                    int daycount=1,monthcount=0;
                    int wc=0,hc=0;
                    Image im=createImage(wid,ht);
                    Graphics pad=im.getGraphics();
    //draw the calendar and start with background picture
                    int x0=(wid-wide)/2;
                    int y0=(ht-high)/2;
                    pad.drawImage(pic,x0,y0,wide,high,this);
    // draw the title
                    pad.setColor(Color.blue);
                    pad.setFont(new Font("Arial",Font.BOLD,36));
                    pad.drawString(stitle,20,40);
                    for (int k=0;k<12;k++){
                       wc=20;
                       hc=60; //to offset the title on top
                       getorientation(k);
                       w=wm+wc;
                       h=hm+hc;
                       pad.setFont(font1);
                       pad.setColor(fcol);
                       pad.drawString("----------------------------------",w,h);
                       h=h+15;
                       pad.drawString("           "+month[k],w,h);
                       h=h+15;
                       pad.drawString("----------------------------------",w,h); //finished writing the month
                       w+=10;
                       h+=20;
                       wstart=w;
                       for(int j=0;j<7;j++){
                        if(j==0)
                            pad.setColor(Color.red);
                        else
                            pad.setColor(fcol);
                        pad.drawString(""+day[j],w,h);
                        w+=30;
                       }
                       pad.setFont(font2);
                       w=0;
                       h+=25;
                       dw=mm[k];
                       for(int l=1;l<end[k]+1;l++){
                            if(dw==1)
                                    w=30+wm;
                            if(dw==2)
                                    w=62+wm;
                            if(dw==3)
                                    w=90+wm;
                            if(dw==4)
                                    w=120+wm;
                            if(dw==5)
                                    w=150+wm;
                            if(dw==6)
                                    w=180+wm;
                            if(dw==7)
                                    w=210+wm;
                            if(dw==1)
                                    pad.setColor(Color.red);
                            else
                                    pad.setColor(fcol);
                            pad.drawString(""+l,w,h);
                            dw++;
                            if(dw==8){
                             dw=1;
                             h+=22;
                            }
                       }
    
                    }
                    h+=45;
                    pad.setFont(new Font("Arial",Font.PLAIN,10));
                    pad.setColor(Color.blue);
                    pad.drawString("Designed by Pankaj Mathur (http://www.pratyush.net)",30,h);
                    g.drawImage(im,0,0,this);
                }
            }
            public void getorientation(int n){
                    if(n==0){
                    wm=0;
                    hm=0;
                    }
                    if(n==1){
                    wm=220;
                    hm=0;
                    }
                    if(n==2){
                    wm=440;
                    hm=0;
                    } //End of first row
                    if(n==3){
                    wm=0;
                    hm=210;
                    }
                    if(n==4){
                    wm=220;
                    hm=210;
                    }
                    if(n==5){
                    wm=440;
                    hm=210;
                    }  //End of second row
                    if(n==6){
                    wm=0;
                    hm=420;
                    }
                    if(n==7){
                    wm=220;
                    hm=420;
                    }
                    if(n==8){
                    wm=440;
                    hm=420;
                    }   //End of third row
                    if(n==9){
                    wm=0;
                    hm=630;
                    }
                    if(n==10){
                    wm=220;
                    hm=630;
                    }
                    if(n==11){
                    wm=440;
                    hm=630;
                    }   //End of fourth row
    
            }
            public void startcalendar(){
                    getvalues();
                    ucal.set(Calendar.YEAR,yr);
                    ucal.set(Calendar.MONTH,Calendar.JANUARY);
                    ucal.set(Calendar.DAY_OF_MONTH,01);
                    jan=ucal.get(Calendar.DAY_OF_WEEK);
                    mm[0]=jan;
                    ucal.add(Calendar.MONTH,1);
                    feb=ucal.get(Calendar.DAY_OF_WEEK);
                    mm[1]=feb;
                    if(ucal.isLeapYear(yr))
                            end[1]=29;
                    ucal.add(Calendar.MONTH,1);
                    mar=ucal.get(Calendar.DAY_OF_WEEK);
                    mm[2]=mar;
                    ucal.add(Calendar.MONTH,1);
                    apr=ucal.get(Calendar.DAY_OF_WEEK);
                    mm[3]=apr;
                    ucal.add(Calendar.MONTH,1);
                    may=ucal.get(Calendar.DAY_OF_WEEK);
                    mm[4]=may;
                    ucal.add(Calendar.MONTH,1);
                    jun=ucal.get(Calendar.DAY_OF_WEEK);
                    mm[5]=jun;
                    ucal.add(Calendar.MONTH,1);
                    jul=ucal.get(Calendar.DAY_OF_WEEK);
                    mm[6]=jul;
                    ucal.add(Calendar.MONTH,1);
                    aug=ucal.get(Calendar.DAY_OF_WEEK);
                    mm[7]=aug;
                    ucal.add(Calendar.MONTH,1);
                    sep=ucal.get(Calendar.DAY_OF_WEEK);
                    mm[8]=sep;
                    ucal.add(Calendar.MONTH,1);
                    oct=ucal.get(Calendar.DAY_OF_WEEK);
                    mm[9]=oct;
                    ucal.add(Calendar.MONTH,1);
                    nov=ucal.get(Calendar.DAY_OF_WEEK);
                    mm[10]=nov;
                    ucal.add(Calendar.MONTH,1);
                    dec=ucal.get(Calendar.DAY_OF_WEEK);
                    mm[11]=dec;
                    ucal.add(Calendar.MONTH,1);
                    repaint();
            }
            public calendar(){
                    frame=new Frame("Sonali Calendar");
                    frame.setSize(250,250);
                    frame.addMouseListener(this);
                    frame.setLayout(new GridLayout(8,2));
                    frame.setFont(new Font("Arial",Font.PLAIN,10));
                    close=new Button ("Close");
                    close.addMouseListener(this);
                    calen=new Button("Make calendar");
                    calen.addMouseListener(this);
                    home=new Button("Homepage");
                    home.addMouseListener(this);
                    email=new Button("email");
                    email.addMouseListener(this);
                    fade=new TextField("60");
                    title= new TextField();
                    fntcol= new Choice();
                    for (int kk=0;kk<fcolor.length;kk++)
                            fntcol.add(fcolor[kk]);
                    path= new TextField("pic.jpg");
                    picsize=new TextField("70");
                    msg=new Label("Welcome to Sonali Calendar");
                    ucal=new GregorianCalendar(); // Make a calendar object
                    String s=""+ucal.get(Calendar.YEAR);
                    year=new TextField(s);
    //first row
                    frame.add(new Label("Input values for your calendar"));
                    frame.add(new Label("(default values are indicated)"));
    // second row
                    frame.add(new Label("Input the year for which you want the calendar"));
                    frame.add(year);
    //third row
                    frame.add(new Label("What title do you want on top"));
                    frame.add(title);
    //fourth row
                    frame.add(new Label("Color of calendar font"));
                    frame.add(fntcol);
    //fifth row
                    frame.add(new Label("Fade the picture in background upto (%)"));
                    frame.add(fade);
    //sixth row
                    frame.add(new Label("Name of pciture file (jpg, gif or jpeg)"));
                    frame.add(path);
    // seventh row
                    frame.add(new Label("Size of picture (in % of window size)"));
                    frame.add(picsize);
    // eighth row
                    Panel p=new Panel();
                    p.setLayout(new GridLayout(1,2));
                    p.add(calen);
                    p.add(close);
                    frame.add(p);
                    Panel pp=new Panel();
                    pp.setLayout(new GridLayout(1,2));
                    pp.add(home);
                    pp.add(email);
                    frame.add(pp);
    //end of frame layout
                    font1=new Font("Arial",Font.BOLD,18);
                    fm1=getFontMetrics(font1);
                    font2=new Font("Arial",Font.BOLD,14);
                    fm2=getFontMetrics(font2);
                    mm=new int[12];
            }
            public void init(){
                    setFont(new Font("Arial",Font.PLAIN,12));
                    frame.pack();
                    frame.show();
                    Dimension d=getSize();
                    wid=d.width;
                    ht=d.height;
                    try{
    			url=new URL("http://www.pratyush.net");
                            mail=new URL("mailto:pankaj@pratyush.net");
    		}catch(MalformedURLException e){System.out.println("malformed URL");}
    	}
    
    	public void start(){}
    	public void stop(){}
    
    	public void Update(Graphics g){
    		paint(g);
    	}
            public void mouseClicked(MouseEvent e){
    		Component o=e.getComponent();
                    if(o==close){
                            if(frame.isShowing())
                                    frame.hide();
                    }
                    if(o==calen){
                            frame.hide();
                            startcalendar();
                    }
                    if(o==home){
                            this.getAppletContext().showDocument(url);
                    }
                    if(o==email){
                            this.getAppletContext().showDocument(mail);
                    }
            }
    	public void mouseReleased(MouseEvent e){}
    	public void mousePressed(MouseEvent e){}
    	public void mouseExited(MouseEvent e){}
    	public void mouseEntered(MouseEvent e){}
            public void itemStateChanged(ItemEvent e) {}
            public void getbackimage(){
                    wide=imagesize*wid/100;
                    high=(imagesize*ht)/100;
                    Image temp=img.getScaledInstance(wide, high, 2);
                    pix = new int[wide * high];
                    try{
                            PixelGrabber pixelgrabber = new PixelGrabber(temp, 0, 0, wide, high, pix, 0, wide);
                            pixelgrabber.grabPixels();
                    }catch(InterruptedException interruptedexception){
                            System.out.println("Unable to grab pixels" + interruptedexception);
                    }
                    for(int j = 0; j < wide * high; j++)
                    pix[j] = pix[j] & 0xffffff | alpha;
                    pic = createImage(new MemoryImageSource(wide, high, pix, 0, wide));
                    dopaint=true;
            }
            public void getvalues(){
                    yr=Integer.parseInt(year.getText());
                    stitle=title.getText()+"Year "+yr;
    //get font color
                    if(fntcol.getSelectedItem()=="blue")
                            fcol=Color.blue;
                    if(fntcol.getSelectedItem()=="black")
                            fcol=(Color.black);
                    if(fntcol.getSelectedItem()=="cyan")
                            fcol=(Color.cyan);
                    if(fntcol.getSelectedItem()=="darkGray")
                            fcol=(Color.darkGray);
                    if(fntcol.getSelectedItem()=="gray")
                            fcol=(Color.gray);
                    if(fntcol.getSelectedItem()=="green")
                            fcol=(Color.green);
                    if(fntcol.getSelectedItem()=="lightGray")
                            fcol=(Color.lightGray);
                    if(fntcol.getSelectedItem()=="magenta")
                            fcol=(Color.magenta);
                    if(fntcol.getSelectedItem()=="orange")
                            fcol=(Color.orange);
                    if(fntcol.getSelectedItem()=="pink")
                            fcol=(Color.pink);
                    if(fntcol.getSelectedItem()=="red")
                            fcol=(Color.red);
                    if(fntcol.getSelectedItem()=="white")
                            fcol=(Color.white);
                    if(fntcol.getSelectedItem()=="yellow")
                            fcol=(Color.yellow);
                    double n=Integer.parseInt(fade.getText());
                    double k= ((100-n)/100)*255;
                    alpha=(int)(k) << 24;
                    file="images/"+path.getText();
                    img=getImage(getCodeBase(),"images/pic.jpg");
                    imagesize=Integer.parseInt(picsize.getText());
                    getbackimage();
            }
    }
    
    Back to Sonali Calendar

    How to Add Java Applets to Your Site

    New on the Java Boutique:

    New Review:

    Time Management Made Easy with the Quartz Enterprise Job Scheduler
    Why not just use the Java timer API? This open source scheduling API boasts simplicity, ease-of-integration, a well-rounded feature set, and it's free!

    New Applet:

    Reverse Complement
    Reverse Complement is a simple applet that converts DNA or RNA sequences into three useful formats.

    Elsewhere on internet.com:

    WebDeveloper Java
    Lots of Java information on webdeveloper.com

    WDVL Java
    Thorough Java resource at the Web Developer's Virtual Library.

    ScriptSearch Java
    Hundreds of free Java code files to download.

    jGuru: Your View of the Java Universe
    Customizable portal with online training, FAQs, regular news updates, and tutorials.