gpt4 book ai didi

java - 在 netbeans 中制作加载屏幕

转载 作者:行者123 更新时间:2023-11-29 07:55:56 30 4
gpt4 key购买 nike

我创建了一个带有按钮的 JFrame 类,我想要它,所以当您按下按钮时,它会带您进入初始屏幕,而无需打开另一个 JFrame。但是我该怎么做呢?我希望新屏幕在中间显示图像和正在加载 GIF 吗?

最佳答案

我喜欢做的是使用 SwingWorkerJWindow:

import javax.swing.JFrame;
import javax.swing.JWindow;
import javax.swing.SwingUtilities;
import javax.swing.SwingWorker;

public class Splashscreen {
JWindow window = new JWindow();

public void start() {
window.setSize(400, 300);
// window.pack();
window.setLocationRelativeTo(null);
window.setVisible(true);

new StartWorker().execute();
}

private class StartWorker extends SwingWorker<Void, Void> {

@Override
protected Void doInBackground() throws Exception {
// Do background process
Thread.sleep(2000);
return null;
}

@Override
protected void done() {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.setSize(640, 480);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
// Dispose window when background process is finished
window.dispose();
}
}

public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new Splashscreen().start();
}
});
}
}

因此,当您实例化Splashscreen 类并调用start 方法时,JWindow 将被显示,SwingWorker 将被执行。 JWindow 将一直显示,直到后台进程(耗时任务)完成。处理完成后,JFrame 将被显示,JWindow 将被释放。

但是!对于您的情况,我建议坚持使用 CardLayout,正如 MadProgrammer 在他的回答中所述。

关于java - 在 netbeans 中制作加载屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17665089/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com