java-Swing组件事件处理程序

提问

我有一个名为Menu的菜单类,它定义了一个JFrame,该类实例化了两个包含文本字段和按钮的JPanel对象.每个JPanel扩展类内部都有一个私有内部类,该内部类处理通过按下按钮触发的事件.

我想知道Menu类是否有办法从JPanels内部的按钮检测触发的事件.

您可以在Menu类的JPanel中添加侦听器,并执行类似的操作吗? :

if(event.getSource() == panel.getButton1()){ 
    //do button1 code 
} 

最佳答案

JPanels和实际上所有的Swing组件都支持属性更改,因此您可以轻松地向任何Component添加PropertyChangeListener并侦听状态更改.只需确保状态更改后的代码在状态更改后调用firePropertyChange(…).