如何在onAction方法中从TextField获取文本?

时间:2013-01-13 01:00:15

标签: java javafx-2

当我尝试从我的TextField on action方法中的Button获取文本时,我收到NullPointerException。这是我的textField定义:

TextField textField = new TextField();
textField.setPromptText("Some text");
GridPane.setMargin(textField, new Insets(50, 50, 10, 50));
gridPane.add(textField, 0, 0);  

这是我的按钮及其动作方法:

Button button = new Button("Button");       
GridPane.setMargin(button , new Insets(0, 50, 0, 50));
gridPane.add(button , 0, 1);
button.setOnAction(new EventHandler<ActionEvent>() {

    @Override
    public void handle(ActionEvent event) {
        String text = textField.getText();                              
    }
});

我在这行中获得NullPointerExcpetionString text = textField.getText();。如何在onAction方法中从textField获取文本?

1 个答案:

答案 0 :(得分:1)

一种可能性是您在方法或构造函数中隐藏TextField。鉴于局部变量尚未声明为final,这似乎是可能的。 如果您的EventHandler正在使用名为textField的类成员变量,请替换

TextField textField = new TextField();

textField = new TextField();