Проблема с Java, отключенные элементы управления по-прежнему запускают события! - PullRequest
3 голосов
/ 14 августа 2010

Я новичок в Java, я пишу на NetBeans. Проблема в том, что всякий раз, когда я отключаю элемент управления то есть jmenu.setEnabled (false), это все еще вызывает события! святое дерьмо! как это! : P

Как я могу предотвратить это?

Ответы [ 3 ]

7 голосов
/ 14 августа 2010

Из Javadoc :

Примечание: отключение облегченного компонент не мешает ему получение MouseEvents.

Примечание: отключение тяжеловеса Контейнер предотвращает все компоненты в этот контейнер от получения любого входные события. Но отключение облегченный контейнер влияет только этот контейнер.

Возможно, вы захотите проверить disableEvents (длинная маска) .

2 голосов
/ 14 августа 2010

Чтобы соответствовать модели событий, принятой Swing, я думаю, что ваш лучший вариант - просто добавить проверку isEnabled () в обработчики, которые вы не хотите выполнять при отключении компонента.

1 голос
/ 14 августа 2010

Рассмотрите возможность использования javax.swing.Action -контролируемых компонентов Swing.

Таким образом, вы можете вместо этого отключить действие напрямую с помощью Action.setEnabled. Его компонент (ы) примет его состояние автоматически. При отключении таким способом компоненты не будут получать MouseEvents.

См. Документы по конструктору JButton(Action).

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