我尝试使用Wizard
类(org.eclipse.jface.wizard.Wizard)生成一个向导
基本上我在构造函数中扩展了Wizard
,我想要的两个页面。
在我的第一页上,我带了一些凭据。
在第二个页面上,我希望使用第一个页面中的凭据对数据库运行查询,以便用名称填充表。
如何将这些值从第一页传递到第二页?
实际上,我目前的代码与http://www.java2s.com/Code/Java/SWT-JFace-Eclipse/Asurveyusingawizard.htm相同,只是我从第一页的一些文本框中获取了一些字符串,并在第二页上有一个表格。
我读过有关容器的文章,发现有一个setData()方法,我可以利用这个方法吗?
3条答案
按热度按时间gc0ot86w1#
我喜欢在Wizard中创建数据对象,并将其传递到每个WizardPage的构造函数中。例如:
这种方法的一个优点是,您可以在向导执行Finish期间访问数据对象。
92dk7w1h2#
下面是另一种方法:
假设您在PageTwo上,并且在PageOne中为希望在PageTwo上使用的值定义了getter。
h43kikqp3#
另一种方法是使用带有静态变量的数据类。例如,如果您有一个NewVehicleWizard,您可能必须示例化Car、Truck或SUV(Vehicle的所有子类)。但是,当示例化向导时,这将是未知的;将在VehicleTypePage中做出该决定,当选择选项Truck时,VehicleTypePage可以进行以下方法调用:
MyWizardData将有一个私有的静态车辆变量,该变量带有静态getter和setter。如果后续页面或NewVehicleWizard本身需要该车辆对象,您可以简单地使用静态getter: