博为峰小博老师:
如果在用户程序界面上有多个组件,但每次也只能操作一个组件,也就是说每次操作的焦点只能停留在一个组件上。基本上所有的组件都产生焦点事件。
焦点事件的接口中的方法主要有下面两种,如下所示。
下面将给出一个实例,通过实例来讲解焦点事件的处理过程,实例程序代如下所示:
publicclassBWFextendsJFrameimplementsFocusListener{
publicstaticintWIDTH=400;
publicstaticintHEIGHT=300;
Listinfo=newList(10);
JTextFieldtf=newJTextField("");
JButtonbutton=newJButton("确定");
publicBWF() {
super("博为峰教育");
add(info,BorderLayout.NORTH);
add(tf,BorderLayout.CENTER);
add(button,BorderLayout.SOUTH);
tf.addFocusListener(this);
}
publicvoidfocusGained(FocusEvent e) {
if(e.isTemporary()){
info.add("暂时性获得");
}
else
info.add("长久性获得");
}
publicvoidfocusLost(FocusEvent e) {
if(e.isTemporary()){
info.add("暂时性获得");
}
else
info.add("长久性获得");
}
publicstaticvoidmain(String args[]){
BWF b=newBWF();
b.setSize(WIDTH,HEIGHT);
b.setVisible(true);
}
}
上面的实例主要实现了一个焦点的获得与失去后的事件处理过程,当获得焦点时到会输出获得焦点的字样,当失去焦点时则输出失去焦点的字样。由以上实例可以看出,焦点事件处理其实很简单,实现焦点监听接口中的方法即可。