Java Swing JMenuBar иногда не появляется - PullRequest
2 голосов
/ 13 июля 2011

Я работаю над настольным Java-приложением, и иногда появляется мой jmenubar, иногда нет. Когда это не происходит, вся программа зависает, и я должен убить ее.

Я создаю его и устанавливаю в конструкторе для фрейма.

Код:


    // Load any settings we might have made from last time.
    loadSettings();

    menuBar = createMenuBar();
    setJMenuBar(menuBar);    

    // re-evaluate and re-layout things, since they've been changed.
    validate();


    addWindowListener(this);    

Как вы можете видеть в моем коде, я добавил вызов validate (), надеясь, что это поможет. Это действительно так, но проблема все еще возникает время от времени.

Заранее спасибо за помощь!

1 Ответ

4 голосов
/ 14 июля 2011

Вот основные правила:

  1. Убедитесь, что все элементы GUI построены в потоке диспетчеризации событий .

  2. Убедитесь, что исключены no , особенно в потоке диспетчеризации событий .

Обратите внимание, что EDTперезапустится после того, как возникнет исключение.В зависимости от обстоятельств приложение может зависнуть.Хотя вы должны увидеть что-то на консоли, статья Обработчики необработанных исключений может дать некоторое представление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...