快速业务通道

用Java Swing制作欢迎屏幕 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23

用Java Swing制作欢迎屏幕

时间:2010-12-11

几乎所有时髦的应用都有一个欢迎屏幕。欢迎屏幕既是宣传产品的方法之一,而且在长时间的应用启动过程中,欢迎屏幕还用来表示应用正在准备过程中。

下面是一个最简单的欢迎屏幕实现:

class SplashWindow1 extends JWindow {   public SplashWindow1(String filename, Frame f)   {    super(f);    JLabel l = new JLabel(new ImageIcon(filename));    getContentPane().add(l, BorderLayout.CENTER);    pack();    Dimension screenSize =Toolkit.getDefaultToolkit().getScreenSize();    Dimension labelSize = l.getPreferredSize();    setLocation(screenSize.width/2 - (labelSize.width/2),    screenSize.height/2 - (labelSize.height/2));    setVisible(true);    screenSize = null;    labelSize = null;   } }

SplashWindow1类从Swing的JWindow派生。JWindow是一个容器,它没有其他窗口所具有的各种窗口元素,如标题条、窗口管理按钮,甚至连突出显示的边框也没有。因此,JWindow对于制作欢迎屏幕来说是非常合适的。上面的代码假定图形文件在当前目录。图形通过ImageIcon装入内存,然后它就被放到了JWindow的中心。接着,窗口被pack(),这使得Swing把窗口调整到适当的大小,最后窗口被移到了屏幕的中心。

如果我们运行上面的程序,可以发现虽然欢迎画面确实出现在屏幕中央,但遗憾的,它却不会关闭!要关闭欢迎画面,我们需要加入更多的代码:

class SplashWindow2 extends JWindow {   public SplashWindow2(String filename, Frame f)   {    super(f);    JLabel l = new JLabel(new ImageIcon(filename));    getContentPane().add(l, BorderLayout.CENTER);    pack();    Dimension screenSize =Toolkit.getDefaultToolkit().getScreenSize();    Dimension labelSize = l.getPreferredSize();    setLocation(screenSize.width/2 - (labelSize.width/2),    screenSize.height/2 - (labelSize.height/2));    addMouseListener(new MouseAdapter()    {       public void mousePressed(MouseEvent e)     {      setVisible(false);      dispose();     }    });    setVisible(true);   } }

用Java Swing制作欢迎屏幕(2)

时间:2010-12-11

和原先的SplashWindow1类相比,这个SplashWindow2类唯一的区别在于多出了一个安装到JWindow上的匿名MouseListener。经过这个改动之后,用户可以点击欢迎屏幕关闭它。

现在我们有了一个很不错的欢迎屏幕,它可以通过点击的方法关闭,但它不会自己消失。接下来我们要加入代码,使得欢迎屏幕在显示一定的时间之后自动消失。这里我们要考虑到运用线程。

class SplashWindow3 extends JWindow {   public SplashWindow3(String filename, Frame f, int waitTime)   {    super(f);    JLabel l = new JLabel(new ImageIcon(filename));    getContentPane().add(l, BorderLayout.CENTER);    pack();    Dimension screenSize =Toolkit.getDefaultToolkit().getScreenSize();    Dimension labelSize = l.getPreferredSize();    setLocation(screenSize.width/2 - (labelSize.width/2),    screenSize.height/2 - (labelSize.height/2));    addMouseListener(new MouseAdapter()    {     public void mousePressed(MouseEvent e)     {      setVisible(false);      dispose();     }    });    final int pause = waitTime;    final Runnable closerRunner

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号