焦点事件FocusListener有如下两个方法:
focusGained() 得到焦点触发
focusLost() 失去焦点触发
举例:
package com.iteye.niewj.swt.chapter1;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.FocusEvent;
import org.eclipse.swt.events.FocusListener;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
public class FocusEventShow {
/**
* @author niewj
* @since 2012-6-4
*/
public static void main(String[] args) {
Display display = new Display();
final Shell shell = new Shell();
shell.setText("焦点事件");
shell.setBounds(30,100,300,400);
Label label = new Label(shell, SWT.NONE);
label.setText("文本框1");
label.setBounds(10,50,80,25);
final Text text1 = new Text(shell, SWT.NONE);
text1.setBounds(100,50,200,25);
Label label2 = new Label(shell, SWT.NONE);
label2.setText("文本框2");
label2.setBounds(10,80,80,25);
final Text text2 = new Text(shell, SWT.NONE);
text2.setBounds(100,80,200,25);
/* text1得失去焦点时触发事件 */
text1.addFocusListener(new FocusListener() {
@Override
public void focusLost(FocusEvent arg0) {
text1.setText("文本框1--失焦");
}
@Override
public void focusGained(FocusEvent arg0) {
text1.setText("文本框1--得焦");
}
});
/* text2得失去焦点时触发事件 */
text2.addFocusListener(new FocusListener() {
@Override
public void focusLost(FocusEvent arg0) {
text2.setText("文本框2--失焦");
}
@Override
public void focusGained(FocusEvent arg0) {
text2.setText("文本框2--得焦");
}
});
shell.open();
while(!shell.isDisposed()){
if(!display.readAndDispatch()){
display.sleep();
}
}
display.dispose();
}
}