public class Borrow1 extends ***{
一个方法中定义了一个Text,然后注册该text的modify事件:
text = new Text(composite, SWT.BORDER);
text.setBounds(0, 0, 76, 21);
text.addModifyListener(new ModifyListener() {
@Override
public void modifyText(ModifyEvent e) {
// 把数据存在自己手里,对外提供get API
//username = ((Text) e.getSource()).getText();
// 把数据统一交给wizard里面的通用存储器DialogSettings来存值储
//MyWizardPage1.this.getWizard().getDialogSettings().put("用户名", ((Text) e.getSource()).getText());
// 因为模型改变了,所以要及时更改界面
Borrow1.this.getContainer().updateButtons();
}
});
}
这里内部匿名类需要用上层类Borrow1的方法getContainer(),怎么用,我之前一直很苦恼,现在貌似有两种方法:
1. 如上所示,使用类名.this.调用对象和方法,如:
Borrow1.this.getContainer().updateButtons();
2. 对上层类的对象有用,对方法不清楚。如果是要用上层类中的对象,可以将对象定义时修饰符加上final,这样就可以用了。
但是这样做有局限性,个人觉得第一种方法好。