Процесс не закроется после добавления слушателя мыши - PullRequest
0 голосов
/ 06 июля 2010

Я хочу знать, в чем проблема, когда я пытаюсь закрыть свое приложение Java Swing, когда добавляю прослушиватель в форму frameview.Вот как можно решить мою проблему: В Netbeans создайте новый проект приложения Swing, затем в основном классе создайте локальный метод, который добавляет пустой слушатель мыши в главное окно через this.getMainFrame (). AddMouseListener (new MouseAdapter (){}).Перейдите в класс формы и вызовите этот метод, используя .getApplication (). CreateListenerMethod () в конструкторе формы, сразу после InitComponents ().

Запустите программу, и вы увидите, что после ее закрытия, netbean'sмаленький индикатор выполнения говорит, что он все еще работает: (

Я считаю, что если я устанавливаю для операции закрытия формы по умолчанию значение «dispose», это решает проблему. Почему это происходит, если я вызываю метод из формы восновной класс приложения для добавления слушателя к самому себе? Причина, по которой я добавляю его таким образом, заключается в том, что я хочу сохранить основную логику приложения в классе основного файла, мне неудобно писать код в разобранном классе конструктора форм.

1 Ответ

3 голосов
/ 06 июля 2010

Я не думаю, что слушатель мыши имеет какое-либо отношение к тому, что вы видите, хотя вполне возможно, что мастер генерации кода NB делает какие-то странные вещи в защищенных областях.

Swing не располагает автоматически фреймы / окна, если вы хотите использовать их повторно (показать / скрыть несколько раз). Обычно вы хотите отслеживать закрытые окна / избавляться от них от слушателя окна или в более простых случаях использовать JFrame.setDefaultCloseOperation (). Чаще всего каждое достаточно большое приложение Swing имеет своего рода глобальное средство отслеживания состояния, которое удаляет все окна и закрывает пулы потоков при выполнении условия завершения.

Вы также можете использовать NetBeans RCP, который позаботится о многих аспектах приложения с графическим интерфейсом, если вы готовы потратить время на его изучение (я не рекомендовал бы это для небольших приложений). Другими альтернативами для каркасов приложений Swing являются JDAF от Jide Software (мой выбор) и «Better Swing Application Framework» (от kenai.com)

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