我注意到 ModifyListener 无论操作是由用户还是系统本身引起都会被触发,例如:
Text t = new Text(shell, SWT.BORDER);
t.addModifyListener(new TModifyListener());
...............................................
private class TModifyListener implements ModifyListener
{
@Override
public void modifyText(ModifyEvent event)
{
Text text = (Text) event.widget;
t.setText(process(text.getText()));
}
}
这将导致无限循环并使程序崩溃。你们有没有想过如何在事件由系统生成时禁用事件监听,而在事件由用户引起时启用它?