我正在 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
监听组合框文本字段中的变化,这意味着它会对由选择引起的文本变化使用react。这也意味着如果该文本被其他路径更改(例如,组合文本字段中的用户条目),它将被触发。
记住这种行为,ModifyListener
可能是一种选择。
关于java - 从代码中触发选择事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12539106/