【问题标题】:Exception when Controller's property is private or protected [duplicate]当控制器的属性是私有或受保护时的异常[重复]
【发布时间】:2017-12-13 06:34:09
【问题描述】:

我在 FXMLDocument.fxml 中有这个 TextField:

<TextField fx:id="searchBox" onKeyPressed="#updateText">
   <StackPane.margin>
      <Insets left="60.0" right="30.0" top="50.0" />
   </StackPane.margin>
</TextField>

FXML 文档(上述代码所在的位置)具有名为 FXMLDocumentController.java 的控制器类。在这里面,我有以下代码:

public class FXMLDocumentController {

    public TextField searchBox;

    @FXML
    public void updateText (KeyEvent e) {
        System.out.println(searchBox.getText());
    }
}

注意searchBox 属性是public。当我将其设置为private 时,我的代码会在运行时引发异常。我已经看到人们在 Stack Overflow 答案 (here's one) 中将“事件有界属性”指定为 private。看到这些答案,我假设将属性指定为 private 不应该给出任何错误。那我的代码有什么问题?

【问题讨论】:

  • 这个问题是重复的。感谢 James_D 指出 :) 原帖解决了我的问题

标签: java javafx javafx-2 fxml


【解决方案1】:

在您的 TextField 搜索框上使用 @FXML 注释。见以下代码:-

public class FXMLDocumentController {

        @FXML
        private TextField searchBox;

        @FXML
        public void updateText (KeyEvent e) {
            System.out.println(searchBox.getText());
        }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-15
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 2017-06-29
    • 2014-12-14
    • 1970-01-01
    相关资源
    最近更新 更多