код из существующего компонента Swing,

у создать (простой, надеюсь) пользовательский компонент Swing, составив несколько существующих компонентов. В моем случае это двухпозиционный переключатель, который состоит из JLabel и двух кнопок J для включения и выключения. Я начинаю OnOffSwitch с расширения JPanel. Конструктор добавляет подкомпоненты и устанавливает себя как ActionListener для кнопок. Класс имеет метод isOn () для запроса текущего состояния компонента.

Теперь я хочу добавить возможность добавления ActionListeners в класс OnOffSwitch. Я ожидал, что эта функциональность будет бесплатной, если расширить компонент Swing, такой как JPanel, но JPanel не имеет этой функциональности. Судя по источникам, каждый компонент Swing, у которого есть эта функциональность, сам реализует его: добавление слушателей в список, запуск ActionEvents и т. Д.

Как правильно добиться того, чего я хочу? Я могу скопировать / вставить этот код из различных компонентов Swing (или переписать его суть) или реализовать собственный интерфейс OnOffSwitchListener. Чтобы быть последовательным, кажется, что все мои компоненты должны использовать ActionListeners.

Ответы на вопрос(3)

Ваш ответ на вопрос