我正在使用Java Swing并提出以下问题:
有没有办法看到用户在运行时打开了哪种顶级容器?
我的用户界面上有一个按钮,可以打开JFrame
,因为无法进行模态制作,用户可以打开无穷无尽的帧。我想阻止用户这样做。 (以防万一:我不想切换到JDialog
:))
答案 0 :(得分:2)
您可以使用静态方法Window.getWindows()
。
返回所有
Window
的数组,包括拥有者和无主者, 由此应用程序创建。
因此,您将获得所有框架和对话框。
可能需要按isShowing()
减少此数组
跳过当前关闭的窗口。
答案 1 :(得分:0)
感谢托马斯!
Window[] openedWindows = Window.getWindows();
int countOfShowingWindows = 0;
for (Window window : openedWindows)
{
if (window.isShowing()) ++countOfShowingWindows;
}
if (countOfShowingWindows == 1)
{
// Open the Dialog
}