Java Ubuntu Linux Swing Пустое окно - PullRequest
2 голосов
/ 19 января 2011

Я пишу настольное Java-приложение под управлением Ubuntu 10.10. Все работает нормально, за исключением того, что примерно 1 из 10 раз, когда я вызываю JOptionPane.showMessageDialog (null, message), появляется диалоговое окно, но оно пустое - просто стандартный серый фон. Странно, но несколько раз, когда это происходило, мне удавалось щелкнуть там, где должна быть кнопка ОК , и она зафиксировала клик в порядке. Кто-нибудь знает, что может быть причиной этого?

Ответы [ 3 ]

3 голосов
/ 20 января 2011

Отображаете ли вы диалог из Нити отправки событий ? Странные ошибки с такими симптомами могут появляться время от времени, если Swings правило одного потока нарушается.

2 голосов
/ 19 января 2011

Какую JVM вы используете? Убедитесь, что это не GCJ (как это часто бывает по умолчанию в Ubuntu / Debian). Это свинг-реализация немного странная и часто вызывает такое странное поведение.

0 голосов
/ 25 марта 2011

Я подписываюсь на пост Улена.Наиболее вероятная причина заключается в том, что вы не можете использовать поток диспетчеризации событий для кода Swing.Пример:

try {
    EventQueue.invokeAndWait(new Runnable() {
        @Override
        public void run() {
            JOptionPane.showConfirmDialog(null, "Message");
        }
    });
} catch (InterruptedException ex) {

} catch (InvocationTargetException ex) {

}
...