Swing组件事件处理程序

时间:2012-03-21 11:49:56

标签: java swing user-interface awt

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

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

你可以在Menu类的JPanel中添加一个监听器并执行类似的操作吗? :

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

2 个答案:

答案 0 :(得分:3)

JPanels实际上所有Swing组件都具有属性更改支持,因此您可以轻松地将PropertyChangeListener添加到任何Component并监听状态更改。请确保在状态发生变化的代码中,在状态发生变化后调用firePropertyChange(...)

答案 1 :(得分:1)

您始终可以向组件添加侦听器(例如ActionListener个实例)并处理它们。

在设计方面,您应该考虑拆分菜单/布局和事件处理,即使用单独的控制器来监听事件并处理它们。