0

私はスプラッシュスクリーンに取り組んでいます。なんとかクラスを作ることができました。以下は、スプラッシュ スクリーンを表示するクラスです。私の問題は、JFrame からこのクラスを呼び出して実行すると、JFrame とスプラッシュ画面の両方が同時に実行され、スプラッシュ画面が持続するはずの期間が経過すると、両方が閉じられることです。それらを同時に表示するにはどうすればよいですか?

本当にありがとう

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);

}

}

4

2 に答える 2

1

どんな効果があると思いますか

System.exit(0);

あなたのプログラムにありますか?これは、JVMを終了させ、実行中のすべてのものを閉じるため、ウィンドウを閉じるための大ハンマーの方法です。

Java Swingが提供するSplashScreenオブジェクトの使用を検討しましたか?

于 2012-05-19T19:52:58.970 に答える
0
window.dipose();

dispose() はウィンドウを閉じます。

于 2013-02-26T11:10:47.813 に答える