2012-03-21 112 views
3

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

我想知道是否有一种方法让Menu类从JPanel内部的按钮中检测触发事件。

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

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

回答

3

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

1

您可以随时将侦听器添加到组件(例如ActionListener实例)并处理它们。

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