Показать событие для JTextField в Java? - PullRequest
5 голосов
/ 09 февраля 2012

Я реализую специализированную версию JTextField и хочу упаковать ее в собственный bean-компонент. Боб работает довольно хорошо до сих пор. Вот мой вопрос:

Как я могу определить, когда отображается JTextField? Так что я могу запускать некоторые графические элементы каждый раз, когда отображаются поля.

Событие ShowComponent не работает для меня. FocusGained и FocusLost работают просто отлично.

Надеюсь, есть кто-то, кто знает решение этой проблемы.

Ответы [ 2 ]

4 голосов
/ 09 февраля 2012

Можете ли вы использовать метод isShowing ()?http://docs.oracle.com/javase/7/docs/api/java/awt/Component.html#isShowing%28%29

2 голосов
/ 10 февраля 2012

Хотя использование ComponentListener и выполнение чего-либо в его componentShown интуитивно кажется правильным, это не помогает: оно срабатывает при изменении свойства visible компонента.Это свойство имеет значение true по умолчанию (даже если оно еще не добавлено ни в один контейнер, отображаемый на экране), и, следовательно, ничего не отображается при отображении ..

Вместо этого используйте AncestorListener и делайте то, что необходимо в его ancestorAdded.

...