1

我正在开发一个启用了 Spring Security 的 Javafx 应用程序。然后,我创建了一个 fxml 表单,它有一个 id 等于 txtField 的 textField。后来我用@Secured Anottation 注释了一个方法,但是当我尝试将文本设置为 textField 时,我得到了 NullPointerException。

控制器类如下:



    @Controller
    public class ControladorInicio {
        @FXML
        private ResourceBundle resources;
        @FXML
        private URL location;
        @FXML
        public TextField textField;

        @FXML
        @Secured("ROLE_OFERTA_ADMIN")
        public void onButton3(ActionEvent event) {
            System.out.println("has permission");
        }

        @FXML
        public void initialize() {
            textField.setText("This is a text"); //I get a null pointer exception here
        }
    }

我怀疑当我使用@Secured 时 javafx 没有向控制器注入属性字段。但是,当我评论 @Secured 注释时,一切都很好。

4

3 回答 3

3

在 fxml 中,确保设置字段“fx:id”。字段“id”似乎是 CSS id。

于 2017-05-03T15:53:07.430 回答
0

如果在 FXML 上您的文本字段 id 等于 txtField ,当您想使用它时,您需要编写

@FXML
private TextField txtField;

与您的 fxml id 同名。否则将无法正常工作。

于 2013-07-16T15:40:57.157 回答
-1

该方法需要正确的签名。

@FXML
    public void initialize(javafx.event.ActionEvent evt) {
        textField.setText("This is a text"); //I get a null pointer exception here
    }
于 2014-08-03T02:55:32.393 回答