Java 在netbeans中制作加载屏幕
我已经创建了一个带有按钮的JFrame类,我想要它,因此当您按下按钮时,它将带您进入启动屏幕,而无需打开另一个JFrame。但是我该怎么做呢?。我希望新的屏幕在中间有图像和加载GIF? 我已经创建了一个带有按钮的JFrame类,我希望在 按下按钮,它将带您进入启动屏幕而不打开 另一个JFrame 因此,我们可以假设这意味着您希望使用当前JFrame显示启动屏幕 您可以使用在活动屏幕或面板之间切换 如果您使用的是gif,最简单的解决方案是通过ImageIcon加载图像并使用JLabel渲染它(假设它是动画gif),否则您可以查看图像并通过JLabel显示它 我已经创建了一个带有按钮的JFrame类,我希望在 按下按钮,它将带您进入启动屏幕而不打开 另一个JFrame 因此,我们可以假设这意味着您希望使用当前JFrame显示启动屏幕 您可以使用在活动屏幕或面板之间切换Java 在netbeans中制作加载屏幕,java,swing,netbeans,Java,Swing,Netbeans,我已经创建了一个带有按钮的JFrame类,我想要它,因此当您按下按钮时,它将带您进入启动屏幕,而无需打开另一个JFrame。但是我该怎么做呢?。我希望新的屏幕在中间有图像和加载GIF? 我已经创建了一个带有按钮的JFrame类,我希望在 按下按钮,它将带您进入启动屏幕而不打开 另一个JFrame 因此,我们可以假设这意味着您希望使用当前JFrame显示启动屏幕 您可以使用在活动屏幕或面板之间切换 如果您使用的是gif,最简单的解决方案是通过ImageIcon加载图像并使用JLabel渲染它(假设
如果您使用的是gif,最简单的解决方案是通过ImageIcon加载图像并使用JLabel渲染它(假设它是动画gif),否则您可以查看图像并通过JLabel显示它。我喜欢做的是使用和JWindow: 所以,当您实例化Splashscreen类和调用start方法时,将显示JWindow并执行SwingWorker。JWindow将一直显示,直到后台进程耗时任务完成。处理完成后,将显示JFrame,并处理JWindow
但是!在您的情况下,我建议继续使用MadProgrammer在其回答中所述的CardLayout。我喜欢做的是使用和JWindow: 所以,当您实例化Splashscreen类和调用start方法时,将显示JWindow并执行SwingWorker。JWindow将一直显示,直到后台进程耗时任务完成。处理完成后,将显示JFrame,并处理JWindow 但是!在你的情况下,我建议坚持MadProgrammer在回答中所说的CardLayout
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();
}
});
}
}