日期:2014-05-20  浏览次数:20709 次

多个JTextField使用同一个FocusEvent时,怎样判断焦点事件来源?
只能把所有的JTextField定义为全局变量吗?然后比较对象?

有没有类似ActionEvent的设置actionCommand方法啊?
public class MainPanel1 implements ActionListener,FocusListener{

//定义成员变量
private JTextField f_filename = new JTextField(10);
private JTextField f_rootpath = new JTextField(5);

@Override
public void focusLost(FocusEvent e) {
JTextField source = (JTextField) e.getSource();
//比较对象,只能通过这种方式吗?
if(source==f_filename){
//相关操作...
}else if(source==f_rootpath){
//相关操作...
}
}

//...此处省略10000字
}
GUI FocusEvent JTextField

------解决方案--------------------
使用两个匿名内部类.

SRP 单一职责