Dav*_*vid 5 java swing controls event-handling
我有一个带Save()方法的程序,它保存表单上的微调器和文本字段中的所有数据.每次用户对文本字段或微调器进行更改时,有没有办法调用"Save()"?类似于通用事件处理程序的东西.
谢谢
您可以将ChangeListener的单个实例连接到所有控件,这可能看起来像(当是内部类时):
private class ListenerImpl implements ChangeListener {
public void stateChanged(ChangeEvent e) { save(); }
}
Run Code Online (Sandbox Code Playgroud)
要一次性添加此侦听器,您可以Container像这样循环遍历您的子侦听器:
final ListenerImpl l = new ListenerImpl();
for (Component c : getComponents()) {
if (c instanceof JSpinner) {
((JSpinner)c).addChangeListener(l);
} else if (c instanceof JTextPane ) { } // ... other types of components
}
Run Code Online (Sandbox Code Playgroud)
您必须寻找不同类型的组件,因为没有定义该addChangeListener(..)方法的接口(据我所知)。