【发布时间】:2011-08-27 12:12:41
【问题描述】:
我想通过组合几个现有组件来创建一个(希望是简单的)自定义 Swing 组件。在我的例子中,它是一个开关,由一个 JLabel 和两个用于打开和关闭的 JButton 组成。我从扩展 JPanel 开始 OnOffSwitch。构造函数添加子组件,并将自己设置为按钮的 ActionListener。该类有一个 isOn() 方法用于查询组件的当前状态。
我现在想添加将 ActionListeners 添加到 OnOffSwitch 类的功能。我希望通过扩展 JPanel 之类的 Swing 组件来免费提供此功能,但 JPanel 没有此功能。从源代码来看,每个具有此功能的 Swing 组件都会重新实现它自己:将侦听器添加到列表、触发 ActionEvents 等。
实现我想要的正确方法是什么?我可以从各种 Swing 组件复制/粘贴该代码(或重写它的要点),或者我可以实现我自己的 OnOffSwitchListener 接口。为了保持一致,我的所有组件似乎都应该使用 ActionListeners。
【问题讨论】:
标签: java swing custom-controls actionlistener