JavaFX 场景构建器 Controller

标签 java nullpointerexception javafx-2 scenebuilder

我正在尝试操作场景生成器生成的文本字段中的文本。我的 Controller 如下所示:

@FXML
private TextField textDescr;

public void initialize(URL fxmlFileLocation, ResourceBundle resources) {
    textDescr = new TextField();
    assert textDescr != null : "fx:id=\"textDescr\" was not injected: check your FXML   file 'provingGroundsUI.fxml'.";
    Game.mainFSM.enter();
}
public void setText(String s) {
    // TODO Auto-generated method stub
    textDescr.setText(s);
}

我收到 NullPointerException。我尝试过使用或不使用 textDescr = new TextField(); 的机器人部分。我不太明白......我认为JavaFX在程序开始时初始化了所有UI变量。

最佳答案

  1. 您的 FXML 怎么样?
  2. 在setText函数中操作textDescr有很多风险。最好使用绑定(bind)的 StringProperty:


    @FXML
    private Text textDescr;

    private StringProperty textProperty = new SimpleStringProperty();  

    @FXML
    void initialize() {
            assert textDescr != null : "fx:id=\"textDescr\" was not injected: check your FXML file 'TestView.fxml'.";
           textDescr.textProperty().bind(textProperty);
    }

    public ReadOnlyStringProperty textProperty(){
          return textProperty;
    }

关于JavaFX 场景构建器 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25743688/

相关文章:

java - Spring Cloud Vault错误: nested exception is javax.net.ssl.SSLHandshakeException:扩展名(5)不应出现在certificate_request中

Java:查找 BST 中未找到的节点的深度

java - 跟踪中提到的最顶行是否总是抛出空值?

java - NullPointerException,比较容易

java - 如何使 ListView<ImageView> 不占用超出其需要的空间?

javafx-2 - JavaFX 中的内部框架

java - 如何从 RAW 文件夹而不是 SDCARD 加载 mp3 文件

java - 将 SVN 与 CruiseControl 一起使用?

java - 无法在方法中访问数组?

css - javafx 在运行时更改 css