我用一個按鈕創建了一個JFrame類,我想要它,所以當您按下按鈕時,它會將您帶到啓動畫面而不打開另一個JFrame。但我如何做到這一點?我希望新屏幕中間有一個圖像和一個加載GIF?在netbeans中創建一個加載屏幕
1
A
回答
2
「我創建了一個JFrame類有一個按鈕,我想它,所以當你 按下按鈕,它會帶你到一個啓動畫面,而無需打開另一個 JFrame的。」
因此,我們可以假設這意味着您要使用當前的JFrame
顯示啓動畫面。
你可以使用一個CardLayout如果您使用的是GIF活躍的「屏幕」或「板」
之間進行切換,最簡單的解決辦法是通過ImageIcon
加載圖像,並使用JLabel
以使其(假設這是一個動畫GIF),否則,你可以在Reading/loading an Image看看到的圖像(並通過JLabel
顯示它)
3
我想做什麼,就是用SwingWorker和JWindow
:
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在他的回答中所述。
相關問題
- 1. 需要在Android中創建一個加載屏幕
- 2. Phonegap - 創建CSS加載屏幕
- 3. 創建Angular4「加載」屏幕:ExpressionChangedAfterItHasBeenCheckedError
- 4. 使用CALayer創建加載屏幕
- 5. 在TabLayout中加載屏幕
- 6. 在Android中加載屏幕
- 7. 如何在Unity中創建加載屏幕?
- 8. 如何在Corona SDK中創建加載屏幕?
- 9. 如何在android中創建加載屏幕?
- 10. 如何在JavaFX中創建自定義加載屏幕?
- 11. 在pygame中創建多個屏幕
- 12. Netbeans雙屏幕
- 13. 加載屏幕
- 14. 如何在tabBarcontroller上創建一個Dropbox風格的加載屏幕?
- 15. C#/ C++:在屏幕頂部創建一個附加欄
- 16. 創建一個屏幕截圖插件
- 17. 創建一個模型清除屏幕
- 18. Pygame創建一個新的屏幕
- 19. MFMailComposeViewController加載一個空白屏幕
- 20. 附加到「屏幕」會話與創建一個新的屏幕窗口
- 21. 在一個活動中創建多個屏幕
- 22. Android:如何在訪問數據庫時創建加載屏幕
- 23. 如何在創建數據庫時顯示加載屏幕?
- 24. 在iPhone上創建自定義加載屏幕
- 25. 如何在angularJs路由之間創建加載屏幕
- 26. 在Java中創建一個圖庫 - Netbeans
- 27. 在netbeans和index.jsp中創建一個servlet
- 28. 在NetBeans中創建一個類庫
- 29. Webview在屏幕外加載?
- 30. 創建一個加載屏幕,點擊按鈕後x時間消失