【问题标题】:Unable to get textfield input [JavaFX]无法获取文本字段输入 [JavaFX]
【发布时间】:2018-04-25 11:16:32
【问题描述】:

我无法从 javafx 的文本字段中提取用户输入。

当我单击按钮时,我希望文本字段中的文本应打印在控制台中,但它什么也不显示。这是截图:1

控制器类:

public class FXMLDocumentController implements Initializable {

    @FXML
    private Label label;

    @FXML
    private TextField textField;
    @FXML
    private Button button;

    @FXML
    private void handleButtonAction(ActionEvent event) {
        textField = new TextField();
        System.out.println("You clicked me!" + textField.getText());
        label.setText("Hello World!");
    }

    @Override
    public void initialize(URL url, ResourceBundle rb) {
        // TODO
    }    
}

FXML:

<?xml version="1.0" encoding="UTF-8"?>

<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>

<AnchorPane id="AnchorPane" prefHeight="200" prefWidth="320" 
xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" 
fx:controller="javafxapplication4.FXMLDocumentController">
    <children>
        <Button fx:id="button" layoutX="126" layoutY="90" 
onAction="#handleButtonAction" text="Click Me!" />
        <Label fx:id="label" layoutX="126" layoutY="120" minHeight="16" 
minWidth="69" />
      <TextField fx:id="textField" layoutX="86.0" layoutY="137.0" />
    </children>
</AnchorPane>

是什么错误,如果可能的话,你能提供一个解释吗? 谢谢。

【问题讨论】:

    标签: javafx


    【解决方案1】:

    问题出在textField = new TextField(); 您正在重新定义 textField 实例,这就是您获得空值的原因,但是您已经使用 @FXML 注释实例化了 TextField 以便检索该 textField 中的文本(之前已经定义)将您的方法更改为:

    @FXML
    private void handleButtonAction(ActionEvent event) {
        System.out.println("You clicked me!" + textField.getText());
        label.setText("Hello World!");
    }
    

    【讨论】:

    • 非常感谢!早些时候我得到一个空指针异常,为了解决它,我添加了这一行。后来我发现我必须在 FXML 文件中使用“fx:id”而不是“id”,并保持该行不变。我很笨:p
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-15
    • 1970-01-01
    • 1970-01-01
    • 2019-03-14
    相关资源
    最近更新 更多