2013-07-19 2 views
2

Я хочу показать один JLabel и один JComboBox, когда в предыдущем кадре выбран один из RadioButton, иначе он должен быть скрыт. Даже когда я реализую ComponentListener в этом классе, его абстрактные методы (componentShown(), componentHidden()) никогда не называются.Можно ли вызвать метод componentShown() из класса, который расширяет JFrame вместо JPanel? Если да, то как?

+2

Просьба ознакомиться с http://sscce.org/ first – vels4j

+0

. Этот вопрос не имеет особого смысла. Методы реализации не подразумевают, что они называются автоматически во время выполнения :-) Пожалуйста, прочитайте и поймите главу о EventListeners в учебник по качанию, указанный в вики-ярлыке swing. Если вы все еще сталкиваетесь с проблемами, вернитесь с помощью SSCCE (как уже было предложено, не может повторяться достаточно часто) – kleopatra

+0

Если бы вы попытались [Component.isShowing()] (http://docs.oracle.com/javase /7/docs/api/java/awt/Component.html#isShowing())? Мне кажется, вам нужен этот метод, а не тот, с которым вы играете :-) –

ответ

0

Я думаю, что ваша проблема может быть решена довольно легко, даже не попав в эти обработчики событий. Просто передайте переменную из вашего исходного фрейма, когда выбран RadioButton, в новый фрейм (возможно, логическая переменная с истинным значением). Затем, в вашей новой славе, просто покажите компоненты, основанные на значении этой переменной.
Надеюсь, вы сможете справиться с передачей переменных, обработав параметры конструктора вашего нового фрейма.

Надеюсь, это поможет! Любые разъяснения, пожалуйста, прокомментируйте.