如何根据ChoiceBox选择的选项调整(扩展)布局?我的主窗口由ChoiceBox(带有几个选项)和Exit按钮组成。当用户展开列表并选择一个选项时,布局应该以这样的方式更改,即选择框(包含所选项),但根据选择,添加一些表单和标签以创建一种填充表单。我的想法如下:
choiceBox.getSelectionModel().selectedIndexProperty().addListener(new ChangeListener<Number>() {
@Override
public void changed(ObservableValue ov, Number value, Number new_value) {
try {
stage = (Stage) choiceBox.getScene().getWindow();
FXMLLoader loader = new FXMLLoader();
choiceBox.getSelectionModel().select(new_value.intValue());
Parent parent = loader.load(getClass().getResource(Strings.addItemLayouts[new_value.intValue()]).openStream());
Scene scene = new Scene(parent);
stage.setScene(scene);
} catch (IOException e) {
e.printStackTrace();
}
}
其中addItemLayouts
是一个字符串数组,它包含根据所选项目的新布局路径。
每个布局都将其控制器定义为与主窗口控制器相同。这是好方法还是可以以更好的方式做到这一点?