Есть ли простой способ узнать, отображается ли модальное диалоговое окно в настоящее время? - PullRequest
7 голосов
/ 06 октября 2010

Есть ли один метод в AWT или Swing, чтобы либо сказать мне, есть ли модальное окно (или несколько) вверх, либо вернуть их массив?

Я посмотрел в Window, Dialog, JDialog, SwingUtilities и т. Д., Но не смог найти.

(я знаю, что могу просмотреть Window#getWindowsи проверьте Dialog#isModal.)

1 Ответ

10 голосов
/ 06 октября 2010

(Это то, что я знаю и работаю, хотя я не уверен, правильно ли использовать 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;
}
...