在SWT中FocusListener可以用来监听一个textfield是否被选中, 在下面的程序里,我在两个text上加了FocusListener,功能是当 text被选中时,上面的文字会呈全选状态。 我不知道为什么只对第一个有效? 后来才发现是因为两个text的类型不一样。 只是对SWT.SINGLE的text,好象selectAll()无效 。
//TextField1.java import org.eclipse.swt.SWT; import org.eclipse.swt.events.FocusEvent; import org.eclipse.swt.events.FocusListener; import org.eclipse.swt.widgets.*;
public class TextField1 { Display d; Shell s; TextField1( ) { d = new Display( ); s = new Shell(d); s.setSize(250,250); s.setText("A Text Field Example"); Text text1 = new Text(s, SWT.WRAP SWT.BORDER); text1.setBounds(100,50,100,20); text1.setTextLimit(5); text1.setText("12345"); Text text2 = new Text(s, SWT.SINGLE SWT.BORDER); text2.setBounds(100,75,100,20); text2.setTextLimit(10); // add a focus listener FocusListener focusListener = new FocusListener( ) { public void focusGained(FocusEvent e) { Text t = (Text)e.widget; t.selectAll(); } public void focusLost(FocusEvent e) { Text t = (Text)e.widget; if(t.getSelectionCount( ) > 0){ t.clearSelection( ); } } }; text1.addFocusListener(focusListener); text2.addFocusListener(focusListener); s.open( ); while(!s.isDisposed( )){ if(!d.readAndDispatch( )) d.sleep( ); } d.dispose( ); } public static void main(String[] args) { TextField1 tx = new TextField1(); } }
上一篇:WEB中基于XMLHTTP的简单实例分析
下一篇:利用AJAX技术开发应用程序实战
|