我无法从 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
}
}
文件格式:
<?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>
错误是什么,如果可能,您能提供解释吗?谢谢你。
问题在于textField = new TextField();
您正在重新定义 textField 实例,这就是为什么您获得空值的原因,但是您已经TextField
使用@FXML
注释实例化了,以便检索该 textField 中的文本(之前已经定义)将您的方法更改为:
@FXML
private void handleButtonAction(ActionEvent event) {
System.out.println("You clicked me!" + textField.getText());
label.setText("Hello World!");
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句