私は3つのクラス、main.class、login.class、そしてsplash-screen.classを持っています
私のスプラッシュスクリーンにはメインがなく、main.class が実行されているときにのみ実行されます。ログインするためのコントロールがあります)
それ、どうやったら出来るの?
メインを実行した瞬間に、splashscreen.class と login.class の両方が表示されます
私は3つのクラス、main.class、login.class、そしてsplash-screen.classを持っています
私のスプラッシュスクリーンにはメインがなく、main.class が実行されているときにのみ実行されます。ログインするためのコントロールがあります)
それ、どうやったら出来るの?
メインを実行した瞬間に、splashscreen.class と login.class の両方が表示されます
スイングタイマーを使う:
setRepeats(false)
このタイマーを呼び出します。その ActionListener はスプラッシュ フレームを非表示にし、ログイン フレームを表示する必要があります。以下に示すコードは、あなたのために働くかもしれません:
public static void showSplash(int duration) {
SplashScreen splash1 = SplashScreen.getSplashScreen();
if(splash1==null){
File file1=new File("splash.jpg");
String imgfile1=file1.getAbsolutePath();
JWindow splash = new JWindow();
JPanel content = (JPanel)splash.getContentPane();
int width = 655;
int height = 442;
Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
int x = (screen.width-width)/2;
int y = (screen.height-height)/2;
splash.setBounds(x,y,width,height);
JLabel label = new JLabel(new ImageIcon(imgfile1));
content.add(label, BorderLayout.CENTER);
splash.setVisible(true);
// Wait a little while, maybe while loading resources
try
{
Thread.sleep(duration);
} catch (Exception e) {}
splash.setVisible(false);
}
}
このメソッドは、メソッドの最初の行で呼び出すことができますmain()
。