如何在其定义的方法之外访问组合的组件
how to access the components of a composite outside its defined method
我有一个名为 creatcomponents() 的方法,我在该方法中创建了几个文本字段和按钮。现在我想将侦听器写入调用方法的按钮,并且在该方法中我获得了文本字段的值。我面临的问题是我无法从侦听器中调用的方法访问文本字段。有人可以帮助我实现这个目标吗?
一种方法是将控件保存在 class:
中的字段
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();
}
});
}
}
另请注意,传递给侦听器的许多事件 class 都有一个 widget
字段,它引用您也可以使用的当前控件:
text1.addModifyListener(new ModifyListener()
{
@Override
public void modifyText(ModifyEvent event)
{
Text control = (Text)event.widget;
String text = control.getText();
}
});
我有一个名为 creatcomponents() 的方法,我在该方法中创建了几个文本字段和按钮。现在我想将侦听器写入调用方法的按钮,并且在该方法中我获得了文本字段的值。我面临的问题是我无法从侦听器中调用的方法访问文本字段。有人可以帮助我实现这个目标吗?
一种方法是将控件保存在 class:
中的字段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();
}
});
}
}
另请注意,传递给侦听器的许多事件 class 都有一个 widget
字段,它引用您也可以使用的当前控件:
text1.addModifyListener(new ModifyListener()
{
@Override
public void modifyText(ModifyEvent event)
{
Text control = (Text)event.widget;
String text = control.getText();
}
});