我正在eclipse中編寫一個包含組合框的RCP應用程式,并且在選擇任何項目時,正在觸發選擇事件并且一些随機代碼正在運作.聽衆看起來像這樣:
randomComboBox.addSelectionListener(new SelectionListener(){
@Override
public void widgetSelected(SelectionEvent e) {
// random code
}
@Override
public void widgetDefaultSelected(SelectionEvent e) {
// TODO Auto-generated method stub
}
});
我的問題是:是否可以從代碼中觸發事件?例如,如果我添加:
randomComboBox.select(0);
沒有事件被解雇.在這種情況下,我是否必須編寫自己的監聽器?
解決方法:
組合框的select方法在更改選擇時發送SWT.Modify類型的事件,是以您可以使用ModifyListener而不是SelectionListener.
實際上,ModifyListener偵聽組合框的文本字段中的更改,這意味着它會對選擇引起的文本更改做出反應.這也意味着如果該文本被其他路徑(例如,組合文本字段中的使用者條目)更改,則會觸發它.
記住這種行為,ModifyListener可能是一個選項.
标簽:java,eclipse,events,selection,rcp
來源: https://codeday.me/bug/20190625/1288390.html