一尘不染

如何在JavaFX中设置按钮文本?

java

我正在尝试使用以下代码设置按钮文本:

public void initialize(URL location, ResourceBundle resources) {
    // TODO Auto-generated method stub
    //checking to see whether these buttons were loaded from the FXML file
    assert fx_btnStart != null : "fx:id=\"fx_btnStart\" was not injected: Check your FXML file 'FX-Timer.fxml'.";
    assert fx_btnStop != null : "fx:id=\"fx_btnStop\" INJECTION ERROR";
    assert fx_btnHourUp != null : "fx:id=\"fx_btnHourUp\" INJECTION ERROR";
    assert fx_btnHourDown != null : "fx:id=\"fx_btnHourDown\" INJECTION ERROR";
    assert fx_btnMinuteUp != null : "fx:id=\"fx_btnMinuteUp\" INJECTION ERROR";
    assert fx_btnMinuteDown != null : "fx:id=\"fx_btnMinuteDown\" INJECTION ERROR";
    //ending of initialization of FXML elements

    //set words for buttons yo.
    fx_btnHourUp.setText("HELLO");
}

这是我的FXML:

<children>
            <Button mnemonicParsing="false" prefHeight="53.0" prefWidth="92.0"
                text="Hup" textAlignment="CENTER" alignment="CENTER" id="fx_btnHourUp"/>
            <Button mnemonicParsing="false" prefHeight="37.0" prefWidth="92.0"
                text="Hdown" GridPane.columnIndex="1" textAlignment="CENTER"
                alignment="CENTER" id="fx_btnHourDown" />
            <Button mnemonicParsing="false" prefHeight="44.0" prefWidth="92.0"
                text="Mup" GridPane.columnIndex="2" textAlignment="CENTER"
                alignment="CENTER" id="fx_btnMinuteUp" />
            <Button mnemonicParsing="false" prefHeight="39.0" prefWidth="122.0"
                text="Mdown" GridPane.columnIndex="3" textAlignment="CENTER"
                alignment="CENTER" id="fx_btnMinuteDown" />
        </children>

但这行不通,我不明白为什么,还有其他人知道如何使用JavaFX设置按钮文本吗?>。>;
我觉得JavaFX不像Swing那样简单…但是无论如何,有人知道我在做什么错吗?另外,有没有人知道有什么资源可以学习FXML?我喜欢FXML而不是用Java进行编码,但是似乎没有太多的东西,我是否是世界上唯一喜欢FXML而不是JavaFX
GUI编码的人?


阅读 576

收藏
2020-12-03

共1个答案

一尘不染

您确定您的元素实际上不是null,并且您的assert语句实际上在执行它们应做的事情吗?单击我以获取有关使用断言语句的信息。确保变量声明保留为@FXML private Button fx_btnHourUp;,并且永远不要通过实例化按钮fx_btnHourUp = new Button();

您是否正在使用SceneBuilder
2.0创建fxml?它是一个程序,您可以在设计fxml的同时避免许多此类常见错误。在这里下载链接。

2020-12-03