0
A
回答
3
保留每個對話框的引用(可能在一個集合中)。在需要時,重複收集並致電dialog.setVisible(false)
。
正如@mKorbel建議,你也可以使用:
Window[] windows = Window.getWindows();
你只需要遍歷數組和關閉東西的時候來檢查「父」窗口。
+1
保留對每個對話框的引用?= Window [] windows = Window.getWindows(); – mKorbel
+0
@mKorbel這將工作。 .. –
2
其中超JFrame
類Window
有方法getOwnedWindows
,你可以用它來獲得所有子陣列(獨資)Window
秒(包括JFrame
S和JDialog
S)。
public class DialogCloser extends JFrame {
DialogCloser() {
JButton closeChildren = new JButton("Close All Dialogs");
JButton openDiag = new JButton("Open New Dialog");
closeChildren.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Window[] children = getOwnedWindows();
for (Window win : children) {
if (win instanceof JDialog)
win.setVisible(false);
}
}
});
openDiag.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JDialog diag = new JDialog(DialogCloser.this);
diag.setVisible(true);
}
});
getContentPane().add(openDiag, BorderLayout.PAGE_START);
getContentPane().add(closeChildren, BorderLayout.CENTER);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
pack();
setVisible(true);
}
public static void main(String[] args) {
new DialogCloser();
}
}
編輯:
問題改爲
查找和當前正在顯示
關閉所有JDialog
對象,我還以爲他們是所有孩子同一父母。
0
下面這段代碼的伎倆:
private void closeAllDialogs()
{
Window[] windows = getWindows();
for (Window window : windows)
{
if (window instanceof JDialog)
{
window.dispose();
}
}
}
相關問題
- 1. 父窗口關閉時關閉所有子窗口
- 2. 關閉一個窗口關閉java中的所有框架
- 3. 關閉父窗口中的所有子窗口
- 4. 從其他窗口關閉所有子窗口瀏覽器
- 5. 只有在java swing中關閉子窗口時才需要關閉父窗口
- 6. 從父窗口關閉子窗口
- 7. 子窗口關閉時通知窗口
- 8. 關閉子窗口刷新父窗口
- 9. 從子窗口關閉父窗口
- 10. 使用子窗口關閉父窗口。
- 11. 關閉子窗口加載父窗口
- 12. WPF關閉子關閉父窗口
- 13. 關閉MATLAB中的所有ANOVA窗口
- 14. 如何關閉所有窗口
- 15. 關閉所有瀏覽器窗口?
- 16. 關閉所有彈出窗口
- 17. Java Script關閉IE8窗口
- 18. 當父窗口在Jquery中關閉時關閉子窗口
- 19. 如何關閉父窗口關閉子窗口?
- 20. 如何防止父窗口關閉之前關閉子窗口
- 21. 在javascript中關閉父窗口時如何關閉子窗口?
- 22. 當父窗口關閉時自動關閉子窗口
- 23. PYQT5 Mdi子窗口關閉
- 24. 從ViewModel關閉子窗口
- 25. 關閉JavaScript子窗口
- 26. 在關閉一個窗口之後關閉WPF中的所有窗口
- 27. 當用戶關閉其中一個窗口時,WPF關閉所有窗口
- 28. PyQtGraph - 如何關閉繪圖窗口/關閉所有繪圖窗口?
- 29. 無關閉窗口的關閉窗口
- 30. C# - 如何關閉主窗體和子窗體(只有當主窗體關閉時子窗口才會關閉)
什麼是「子框架」?請參閱[使用多個JFrames,好/壞實踐?](http://stackoverflow.com/q/9554636/418556) –
不要點擊'後退按鈕'來編輯帖子!使用問題下方的「編輯」鏈接.. –
道歉我已經改寫了這個問題。 –