在您的面板中,您可以调用该getPage()方法。您可以检查页面是否是某个类的实例,您可以通过调用来获取页面类getPageClass()。
setVisible()可以通过调用方法或重写方法来设置面板内组件的可见性isVisible()。如果组件应该是可编辑的,可以通过使用isEnabled()方法(或覆盖setEnabled())来控制。
class YourPanel extends Panel {
public YourPanel() {
add(new TextField("name") {
@Override
boolean isVisible() {
return getPage().getPageClass().equals(Page2.class);
}
}
TextField genderTextField = new TextField("gender");
genderTextField.setVisible(!getPage().getPageClass().equals(Page3.class));
add(genderTextField);
}
}
如您所见,对于许多组件和许多情况,检查代码将非常复杂。如果您创建自定义面板,根据其可见性和可编辑性规则添加组件并控制整个面板(如果它们可见和/或可编辑),也许您可以获得更清晰的代码。