我有一个名为creatcomponents()的方法,我在复合中创建了很少的文本字段和按钮。现在我想写一个调用方法的按钮的监听器,在这个方法中我得到了文本字段的值。我面临的问题是我无法从侦听器中调用的方法访问文本字段。有人可以帮我解决这个问题吗?
答案 0 :(得分:1)
一种方法是在类中保存控件字段:
public class MyClass
{
private Text text1;
private Text text2;
public void createComponents(Composite parent)
{
Composite composite = new Composite(parent, SWT.None);
text1 = new Text(composite, SWT.SINGLE);
text2 = new Text(composite, SWT.SINGLE);
text1.addModifyListener(new ModifyListener()
{
@Override
public void modifyText(ModifyEvent event)
{
// Access field
String text = text1.getText();
}
});
}
}
另请注意,传递给侦听器的许多事件类都有一个widget
字段,该字段引用您也可以使用的当前控件:
text1.addModifyListener(new ModifyListener()
{
@Override
public void modifyText(ModifyEvent event)
{
Text control = (Text)event.widget;
String text = control.getText();
}
});