web-dev-qa-db-ja.com

GUIのスプラッシュ画面を作成するにはどうすればよいですか?

こんにちは、私はJavaのGUIを初めて使用し、スプラッシュ画面または画像を3秒間表示しようとしました。その後、メインプログラムに移動します。これを行う方法のアイデア、またはチュートリアルにリンクできますか?

これまで私はこれを行いましたが、ここからどこに行くべきかわかりません。

public static void main(String[] args)
{
    splashInit();           // initialize splash overlay drawing parameters
    appInit();              // simulate what an application would do 
}
9
Ali Issa

最も簡単な方法は、JFrameを作成し、それにscreenを追加してから、Thread.Sleep(long millies)を使用することです。

このコードを試してください:

JWindow window = new JWindow();
window.getContentPane().add(
    new JLabel("", new ImageIcon(new URL("http://docs.Oracle.com/javase/tutorial/uiswing/examples/misc/SplashDemoProject/src/misc/images/splash.gif")), SwingConstants.CENTER));
window.setBounds(500, 150, 300, 200);
window.setVisible(true);
try {
    Thread.sleep(5000);
} catch (InterruptedException e) {
    e.printStackTrace();
}
window.setVisible(false);
JFrame frame = new JFrame();
frame.add(new JLabel("Welcome"));
frame.setVisible(true);
frame.setSize(300,100);
window.dispose();

または次のことができます スプラッシュ画面の作成SplashScreen クラス

11
Alya'a Gamal

AWTベースのスプラッシュ機能については、 スプラッシュ画面の作成方法 も参照してください。

splash image

10
Andrew Thompson

私はこのコードを使用します。たぶんあなたはいくつかの部分を変更する必要があります:

import javax.swing.*;
import Java.awt.*;

public class SplashScreen {
    private final JWindow window;
    private long startTime;
    private int minimumMilliseconds;

    public SplashScreen() {
        window = new JWindow();
        var image = new ImageIcon("C:\\example.jpg");
        window.getContentPane().add(new JLabel("", image, SwingConstants.CENTER));
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        window.setBounds((int) ((screenSize.getWidth() - image.getIconWidth()) / 2),
                (int) ((screenSize.getHeight() - image.getIconHeight()) / 2),
                image.getIconWidth(), image.getIconHeight());
    }

    public void show(int minimumMilliseconds) {
        this.minimumMilliseconds = minimumMilliseconds;
        window.setVisible(true);
        startTime = System.currentTimeMillis();
    }

    public void hide() {
        long elapsedTime = System.currentTimeMillis() - startTime;
        try {
            Thread.sleep(Math.max(minimumMilliseconds - elapsedTime, 0));
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        window.setVisible(false);
    }
}

そして、これがそれを使用する方法です:

    var splash = new SplashScreen();
    splash.show(2000);

    // Initializing...

    splash.hide();

これにより、スプラッシュが少なくとも2秒間表示されます。

0