fx:id的参考控制

问题描述 投票:0回答:1

我有一个为使用JavaFX和Scene Builder设计的课堂日历屏幕。enter image description here

我放置数字的部分是标签,而当前表示“无”的部分是按钮。选择按钮时,我想引用标签中的值,以便可以为当天的用户显示约会。

是否有通过FX:ID字符串名称引用控件的方法,所以我可以这样做?标签称为lblDayOfTheWeekxx,按钮称为btnAppointmentxx,其中xx是从01到42的值。]

这是我尝试更改值的方法。这只是一个测试,我试图将第一个按钮的值设置为“ DONE”。

    @FXML
void handleDayChosen(ActionEvent event) {
    try {
//            FXMLLoader loader = new FXMLLoader();
//            loader.setLocation(getClass().getResource("/Views/FormMain.fxml"));
//            Parent myView = loader.load();
//            Scene myScene = new Scene(myView);
//           Label lbl =  (Label) myScene.lookup("#lblDateOfMonth01");

//            Label myLblField = (Label)myView.FindControl("txtField" + 1);
//            lbl.setText("DONE");
        FXMLLoader loader = new FXMLLoader(getClass().getResource("/Views/FormMain.fxml"));
        Parent root = loader.load();
        Button foo = (Button)loader.getNamespace().get("lblAppointments01");

        foo.setText("DONE");
    } catch (Exception ex) {
        System.out.println(ex.getMessage());
    }
}

我是Java的新手,所以我不知道自己在做什么错。

谢谢,

比尔

我有一个为使用JavaFX和Scene Builder设计的课堂日历屏幕。我放置数字的部分是标签,而当前表示“无”的部分是按钮。我想...

java javafx controls scenebuilder
1个回答
0
投票

这样的UI根本不适合FXML。使用Java创建这样的UI通常更容易,代码也更少。这样,您可以在循环中创建按钮和标签,并为每个按钮添加一个不同的事件处理程序:

© www.soinside.com 2019 - 2024. All rights reserved.