SWT中獲得焦點(diǎn)(onFocus)和失去焦點(diǎn)(onBlur)

字號:

Text nickNameText = new Text(group, SWT.BORDER | SWT.SHADOW_IN);
    nickNameText.addListener(SWT.FocusIn, new Listener() {
    public void handleEvent(Event e) {
    // 處理得到焦點(diǎn)的事件
    nickNameText.selectAll();
    }
    });
    nickNameText.addListener(SWT.FocusOut, new Listener() {
    public void handleEvent(Event e) {
    // 處理失去焦點(diǎn)的事件
    }
    });
    Text nickNameText = new Text(group, SWT.BORDER | SWT.SHADOW_IN);
    nickNameText.addListener(SWT.FocusIn, new Listener() {
    public void handleEvent(Event e) {
    // 處理得到焦點(diǎn)的事件
    nickNameText.selectAll();
    }
    });
    nickNameText.addListener(SWT.FocusOut, new Listener() {
    public void handleEvent(Event e) {
    // 處理失去焦點(diǎn)的事件
    }
    });
    好像還有一個(gè)SWT.FOCUSED事件,不過我測試了,如果用鼠標(biāo)點(diǎn)擊,會引發(fā)這個(gè)事件,但如果用Tab鍵切換,則不會,所以還是用 SWT.FocusIn 和 SWT.FocusOut 比較合理一些。
    內(nèi)部處理,可以在獲得焦點(diǎn)時(shí),保存原來的數(shù)據(jù),在失去焦點(diǎn)時(shí),做判斷,如果發(fā)生了數(shù)據(jù)變化,則進(jìn)行相應(yīng)的處理即可。