// Source code import java.applet.*; import java.awt.*; import java.net.*; import java.lang.*; public class button extends Applet{ // subcalss of applet int flag=0,flag2=1,font_size,x,y,style; String link,msg,default_msg,move_msg,wait_msg,font_name,move_status,wait_status; Color text,back=new Color(0) ,font_color,backgr_color,move_color,move_backgr,wait_color,wait_backgr; public void init() { if(null ==(link=getParameter("url"))) link="http://photo.tierranet.com"; if(null == (default_msg=getParameter("default_msg"))) default_msg="Default"; if(null ==(move_msg=getParameter("move_msg"))) move_msg=default_msg; if(null ==(wait_msg=getParameter("wait_msg"))) wait_msg=default_msg; if(null ==(font_name=getParameter("font_name"))) font_name="Times New Roman"; if(null ==(move_status=getParameter("move_status"))) move_status=default_msg; if(getParameter("font_size")!=null) font_size=Integer.valueOf(getParameter("font_size")).intValue(); else font_size=12;// default font size if(getParameter("x")!=null) x=Integer.valueOf(getParameter("x")).intValue(); else x=5; if(getParameter("y")!=null) y=Integer.valueOf(getParameter("y")).intValue(); else y=14; if (getParameter("bold")!=null) style=Font.BOLD; else style=Font.PLAIN; if (getParameter("italic")!=null) style+=Font.ITALIC; Font f= new Font(font_name,style,font_size); setFont(f); font_color=parseColorString(getParameter("font_color"),Color.black); backgr_color=parseColorString(getParameter("backgr_color"),Color.green); move_color=parseColorString(getParameter("move_color"),Color.red); move_backgr=parseColorString(getParameter("move_backgr"),Color.black); wait_color=parseColorString(getParameter("wait_color"),Color.yellow); wait_backgr=parseColorString(getParameter("wait_backgr"),Color.black); } public void start() { flag=0; flag2=1; msg=default_msg; text=font_color; back=backgr_color; } public void paint(Graphics g){ // over-rides default paint function if (flag==1) {// go to new location URL u; try{ u = new URL(link); AppletContext ac=getAppletContext(); ac.showDocument(u); } catch (java.net.MalformedURLException ex) { System.out.println("Invalid URL"); } }//end if g.setColor(text); g.fillRect(0,0,size().width-1,size().height-1); g.setColor(back); g.drawString(msg,x,y); } public boolean mouseEnter(Event evt, int x, int y) // called when mouse enters applet area { if (flag2==1)// will not react after button was clicked { text=move_color; back=move_backgr; msg=move_msg; repaint(); showStatus(move_status); } return true; } public boolean mouseExit(Event evt, int x, int y) // called when mouse exits applet area { if (flag2==1) { text=font_color; back=backgr_color; msg=default_msg; repaint(); showStatus(""); } return true; } public boolean mouseDown(Event evt, int x, int y) // called when mouse was clicked { flag=1; msg=wait_msg; text=wait_color; back=wait_backgr; flag2=0; repaint(); return true; } private Color parseColorString(String colorString,Color Default) // convert a color represented by colorString (RRGGBB) to type Color // if string is empty or string lenght is invalid Default color will be // returned { if (colorString==null) return Default; if(colorString.length()==6){ int R = Integer.valueOf(colorString.substring(0,2),16).intValue(); int G = Integer.valueOf(colorString.substring(2,4),16).intValue(); int B = Integer.valueOf(colorString.substring(4,6),16).intValue(); return new Color(R,G,B); } else return Default; } }