如何同时显示启动画面然后我的JFrame?

时间:2012-05-19 19:38:19

标签: java sleep splash-screen thread-sleep

我正在制作启动画面。我设法上课了。下面是一个显示启动画面的类。我的问题是如果我从JFrame调用此类并运行,JFrame和Splash屏幕同时运行,并且在启动屏幕应该持续的持续时间之后它们都将关闭。如何让它们同时显示?

非常感谢

public class Splash extends JWindow {

AbsoluteLayout abs;
AbsoluteConstraints absImage, absBar;
ImageIcon image;
JLabel label;
JProgressBar bar;

public Splash() {
    abs = new AbsoluteLayout();
    absImage = new AbsoluteConstraints(0, 0);
    absBar = new AbsoluteConstraints(0, 210);
    label = new JLabel();
    image = new ImageIcon(this.getClass().getResource("anime.gif"));
    label.setIcon(image);
    bar = new JProgressBar();
    bar.setPreferredSize(new Dimension(350,10));
    this.getContentPane().setLayout(abs);
    this.getContentPane().add(label, absImage);
    this.getContentPane().add(bar, absBar);

    new Thread() {

        public void run() {
            for (int i = 0; i < 100; i++) {
                bar.setValue(i);
                try {
                    sleep(80);
                } catch (InterruptedException ex) {
                    Logger.getLogger(Splash.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
            System.exit(0);
        }
    }.start();
    this.pack();
    this.setLocationRelativeTo(null);
    this.setVisible(true);

}

}

2 个答案:

答案 0 :(得分:1)

您认为

有什么影响?
System.exit(0);

会有您的计划吗?这是一个关闭窗口的大锤方式,因为它会导致JVM退出,关闭它正在运行的所有东西。

您是否考虑过使用Java Swing提供的SplashScreen对象?

答案 1 :(得分:0)

window.dipose();

dipose()会关闭窗口。