开源代码:JSplashWindow

类别:Java 点击:0 评论:0 推荐:

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

本文地址:http://com.8s8s.com/it/it12041.htm