我有一個應用程序,有時我使用「模式」,較小的窗口。爲了模擬這種模式行爲,我所做的就是將它們定義爲JFrame的擴展,禁用主應用程序框架並將默認關閉操作設置爲什麼也不做。這樣做的問題是JFrame不能有父級,所以當用戶單擊按鈕說關閉窗口時,它實際上關閉,系統返回到最後使用的應用程序,這並不總是期望的效果(例如,用戶打開模式窗口,然後他/她Alt + Tabs進入另一個應用程序,然後切換回模態窗口並關閉它,導致顯示最後一個應用程序,而不是我的主框架)。有沒有辦法做到這一點(將JFrame綁定到父類或類似的東西上?)。請注意,JOptionPane不是一個選項,因爲這些較小的窗口需要在每個窗口內有二十個不同的自定義組件。Java Swing - 保持所有JFrames在一起
0
A
回答
2
爲什麼不使用JDialog
? :-)
+0
正是我在找的,謝謝@ D.R。 – 2013-03-12 18:27:45
0
您可以將JFrame參數添加到構造函數,並在內部將其另存爲父項,並將子項的引用保存在父項的列表中。然後,您可以在關閉窗口之前重寫dispose方法並關閉所有子/父項。
例如:
public class ParentWindow extends JFrame {
//Here you add children when you create them
List<JFrame> children = new ArrayList<JFrame>();
@Override
public void dispose() {
for(JFrame f : children) {
f.dispose();
}
super.dispose();
}
public void randomMethod() {
JFrame newWindow = new JFrame(this);
children.add(newWindow);
}
}
public class ChildWindow extends JFrame {
//Here you save the parent window
JFrame parent;
public ChildWindow(JFrame parent) {
this.parent = parent;
}
@Override
public void dispose() {
parent.dispose();
super.dispose();
}
}
相關問題
- 1. Java,Swing和Xubuntu,JFrames不正確
- 2. java JFrames
- 3. 的Java Swing:保持事件處理maintanable
- 4. Java Swing中的鍵盤「保持」事件?
- 5. Java swing組件保持大小(靜態)
- 6. 如何在Java中將兩個JFrames Windows連接在一起
- 7. Java swing jframes中最常見的OOP概念在哪裏實現?
- 8. Zend框架,並保持所有的我的代碼一起
- 9. Swing ContainerS(JFrameS等)中的動作
- 10. java swing複選框java swing
- 11. Java Swing:如何在關閉後保持父窗口打開JFileChooser
- 12. java swing來計算所有的控件
- 13. Java Swing:所有UIDefaults屬性列表
- 14. Java - Swing - JOptionPane填充
- 15. Java Swing看起來像Windows
- 16. JAVA Swing Gui窗口掛起
- 17. Java swing形式掛起
- 18. 保持合併在一起遊標
- 19. 如何保持串在一起名單
- 20. Tablix分組保持在一起
- 21. 水晶報告 - 保持在一起
- 22. 保持在java中
- 23. Swing中的字體在所有操作系統中看起來都一樣嗎?
- 24. Java SystemTray.add(TrayIcon)在出口掛起Swing GUI
- 25. 如何把兩個java swing JPanels放在一起並且有一個表格呢?
- 26. 將所有數據保存在一起 - 一個主文件
- 27. Java Swing,有一個JComponent和一個JPanel
- 28. 的Java GUI - JPanels,JFrames,Jbutton將
- 29. 的Java裏面搜索JFrames
- 30. java-GUI-連接Jpanels或Jframes
爲什麼不出去'JDesktopPane'?你可以看看這裏知道如何使用它:http://docs.oracle.com/javase/tutorial/uiswing/components/internalframe.html – 2013-03-12 18:14:45
看起來像一個很好的選擇,但JDialog似乎更容易使用,因爲JDesktopPane是JFrame的容器,因此我仍然需要具有JFrame,但是JDialog允許我簡單地將「extends JFrame」替換爲「extends JDialog」。無論如何,因爲我從來沒有聽說過這個班,所以看起來很有用。 – 2013-03-12 18:27:16
'JDesktopPane'是'JInternalFrame'而不是'JFrame'的容器.. – 2013-03-12 18:29:25