有没有一种简单的方法可以知道当前是否显示模态对话框?

时间:2010-10-06 16:05:25

标签: java swing modal-dialog awt

在AWT或Swing中是否有一种方法要么告诉我是否有模态窗口(或多个),或者返回它们的数组?

我查看了WindowDialogJDialogSwingUtilities等,但找不到。

(我知道我可以遍历Window#getWindows并查看Dialog#isModal。)

1 个答案:

答案 0 :(得分:10)

(这是我所知道并且有效的,但我不确定使用Window#isShowing是否正确,或者我是否应该使用别的东西。)

public static boolean isModalDialogShowing()
{
    Window[] windows = Window.getWindows();
    if( windows != null ) { // don't rely on current implementation, which at least returns [0].
        for( Window w : windows ) {
            if( w.isShowing() && w instanceof Dialog && ((Dialog)w).isModal() )
                return true;
        }
    }
    return false;
}