我有一个带有多个文本小部件的shell。
每个小部件对应一个不同的字符串对象,该对象保存其输入以供稍后处理(在小部件本身被释放之后)。
我使用ModifyListener在每次文本更改时更新字符串,如下简单示例所示:
String clientNametext = "";
Text clientName = new Text(composite, SWT.BORDER);
clientName.addModifyListener(new ModifyListener() {
@Override
public void modifyText(ModifyEvent paramModifyEvent)
{
clientNametext = clientName.getText();
}
});
然而,我有许多这样的
Text
字段,我想清理代码,并且 - 而不是为每个字段附加一个新的内部类侦听器 - 创建一个单独的ModifyListener
,然后将其附加到所有字段上,并根据哪个字段更改触发事件修改正确的变量。
问题在于,ModifyEvent
本身似乎没有保存此类信息,也没有任何一种方法可以唯一地识别哪个文本字段已更改。
编辑:如果可能,对我来说仅有一个处理所有情况的侦听器非常重要。
欢迎使用“使用其他类型的字段和侦听对象”的答案,以防ModifyEvent
不能在不使用映射对象ID或其他奇怪的逻辑的情况下唯一地标识发生事件的确切小部件。
Text text = (Text) paramModifyEvent.widget;
,然后clientNametext = text.getText();
怎么样? - Lukas Rotter