【问题标题】:JFace wizard passing variablesJFace 向导传递变量
【发布时间】:2010-07-01 10:59:17
【问题描述】:
【问题讨论】:
标签:
java
eclipse
jface
wizard
【解决方案1】:
我喜欢在 Wizard 中创建我的数据对象并将其传递给我的每个 WizardPages 的构造函数。例如:
public void addPages() {
data = new MyData()
addPage(new FirstPage(data));
addPage(new SecondPage(data));
...
}
这种方法的一个优点是您可以在向导的 performFinish 期间访问您的数据对象。
【解决方案2】:
这是另一种方法:
PageOne pageOne = (PageOne) getWizard().getPreviousPage(this);
假设您在 PageTwo 上,并且在 PageOne 中为您希望在 PageTwo 上使用的值定义了 getter。
【解决方案3】:
另一种方法是使用带有静态变量的数据类。例如,如果您有一个 NewVehicleWizard,您可能必须实例化 Car、Truck 或 SUV(Vehicle 的所有子类)。但这在向导被实例化时是未知的;该决定将在车辆内容中进行,可以在选择选项卡车时进行以下方法调用:
MyWizardData.setVehicle(new Truck());
MyWizardData 将有一个带有静态 getter 和 setter 的私有静态车辆变量。如果后续页面或 NewVehicleWizard 本身需要车辆对象,您可以简单地使用静态 getter:
Truck truck = (Truck)MyWizardData.getVehicle();
// ...work with truck here