package nicholas.swing;
import java.awt.*; import java.awt.event.*; import javax.swing.*;
/** * <p>Title: JSplashWindow</p> * <p>Description: start up window</p> * <p>Copyright: Copyright (c) 2005</p> * <p>Company: ColinSoft</p> * @author Nicholas Lin * @version beta */ public class JSplashWindow extends JWindow { private static JSplashWindow csw; private Image image; private String user; private String lab; private int x1 = 155; private int y1 = 220; private int x2 = 250; private int y2 = 235; private DisposeAdapter da; /** *constructor */ private JSplashWindow(String u, String filename) {
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); ImageIcon icon = new ImageIcon(getClass().getResource(filename)); image = icon.getImage(); user = ""; user = u; setAlwaysOnTop(true);
setSize(icon.getIconWidth(),icon.getIconHeight()); Dimension screen = getToolkit().getScreenSize(); setLocation((screen.width-getSize().width)/2, (screen.height-getSize().height)/2); this.setVisible(true); } /** *set close on click *use as about dialog */ public void setCloseOnClick(boolean b) { if(b) { if(da==null) da = new DisposeAdapter(); addMouseListener(da); } else if(da!=null) { this.removeMouseListener(da); } } /** *set the place where user name will be show */ public void setUserLocation(int x,int y) { x1 = x; y1 = y; } /** *set the place where status will be show */ public void setStatusLocation(int x,int y) { x2 = x; y2 = y; } /** *paint */ public void paint(Graphics g) { g.drawImage(image,0,0,this); g.drawString(user,x1,y1); if(lab!=null) g.drawString(lab,x2,y2); } /** *set the status text */ public void setText(String lab) { this.lab = lab; repaint(); } /** *inner class *to close the JWindow on click */ private class DisposeAdapter extends MouseAdapter { public void mouseClicked(MouseEvent me) { dispose(); } } /** *static method to set the instance *only once is premitted */ public static synchronized boolean setInstance(String user,String filename) { if(csw==null) { csw = new JSplashWindow(user,filename); return true; } return false; } /** *get the instance of JSplashWindow *@return JSplashWindow */ public static synchronized JSplashWindow getInstance() { return csw; } }
By Nicholas Lin @ Jan 7, 2005 
|