如何在来自不同类的非静态标签上使用.setText

时间:2016-07-03 00:27:49

标签: javafx label fxml settext non-static

HY,

我想在JavaFX中设置第二个Controller的标签文本。

我有一个名为GUI.fxml的阶段和一个Controller_GUI.java,我有一个名为Login.fxml的阶段和一个Controller_Login.java。

在GUI界面,我打开登录界面,点击登录按钮放入我的数据。然后Controller_Login进行登录。在GUI.xml之后,我想将Label文本更改为“已连接”,但是它是从Controller_GUI.java控制的,而Label必须被称为非静态,另一种方式是它不会设置Label而我会得到一个“Null”错误消息。

有没有办法绕过这个或一个非常棘手的解决方案来设置Label文本?

GUI.xml

<Label fx:id="labelConnected" contentDisplay="CENTER" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="20.0" text="Disconnected" />

Controller_Login.java

    public void buttonLoginGuiLogin(ActionEvent event) throws IOException {
    if (GUI.Login_Interface.Login(textfieldLoginGuiEMail.getText(),textfieldLoginGuiPassword.getText())) {
        // set the label text
        ((Node)(event.getSource())).getScene().getWindow().hide();
    }
    else {
        labelLoginMessage.setText("Wrong E-Mail or Password.");
    }
}

Controller_GUI.java

@FXML public Label labelConnected;

0 个答案:

没有答案