Controller的属性是私有或受保护时的例外情况

时间:2017-07-09 12:49:04

标签: java javafx javafx-2 fxml

我在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时,我的代码会在运行时抛出异常。我看到有人指定&#34;事件有界属性&#34;作为Stack Overflow答案中的privatehere's one)。看到这些答案,我认为将属性指定为private不应该给出任何错误。那么我的代码出了什么问题呢?

1 个答案:

答案 0 :(得分:0)

在TextField searchBox上使用@FXML Annotation。见下面的代码: -

public class FXMLDocumentController {

        @FXML
        private TextField searchBox;

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