【问题标题】:textField.getText method throwing null pointer exception in javafx [duplicate]textField.getText方法在javafx中抛出空指针异常[重复]
【发布时间】:2018-12-02 08:26:13
【问题描述】:

我有一个文本字段和两个按钮添加和删除我试图在按下添加/删除按钮时获取文本字段数据但我得到空指针异常 这是我的代码

tag.fxml
<Pane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/10.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.server.serverController">
   <children>
      <Label id="taglabel" layoutX="44.0" layoutY="71.0" text="Tags list" />
      <TextField id="tagTextField" layoutX="173.0" layoutY="46.0" promptText="add tag here" onKeyPressed="#sendMethod"/>

      <Button id="tagInsertButton" layoutX="365.0" layoutY="46.0" mnemonicParsing="false" text="Insert Tag" onAction="#insertButtonAction" >
         <opaqueInsets>
            <Insets />
         </opaqueInsets>
      </Button>
      <Button id="tagDeleteButton" layoutX="458.0" layoutY="46.0" mnemonicParsing="false" text="Delete Tag" onAction="#deleteButtonAction"/>
   </children>
</Pane>

serverController.java

public class serverController implements Initializable{

    @FXML
    private TextField tagTextField;
    @FXML
    private Button tagInsertButton;
    @FXML
    private Button tagDeleteButton;

    public void insertButtonAction() throws IOException {
        String msg = tagTextField.getText();
        if (!tagTextField.getText().isEmpty()) {
            System.out.println("insert button pressed with value"+tagTextField.getText());
            tagTextField.clear();
        }
    }

    public void deleteButtonAction() throws IOException {
        String msg = tagTextField.getText();
        if (!tagTextField.getText().isEmpty()) {
            System.out.println("delete button pressed with value"+tagTextField.getText());
            tagTextField.clear();
        }
    }

    public void sendMethod(KeyEvent event) throws IOException {

        if (event.getSource() == tagInsertButton)
            insertButtonAction();

        if (event.getSource() == tagDeleteButton)
            deleteButtonAction();

    }

    @Override
    public void initialize(URL arg0, ResourceBundle arg1) {
        // TODO Auto-generated method stub

    }
}

我在这一行得到空指针异常

String msg = tagTextField.getText();

我确定我错过了一些我在 javafx 中的新东西,请帮助

【问题讨论】:

    标签: java javafx


    【解决方案1】:

    &lt;TextField id="tagTextField" layoutX="173.0" layoutY="46.0" promptText="add tag here" onKeyPressed="#sendMethod"/&gt;

    在 FXML 文件的这行代码中,您将 CSS id 声明为“tagTextField”。您应该使用 fx:id="tagTextField" 将其链接到您的控制器。

    【讨论】:

      猜你喜欢
      • 2018-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      • 2012-12-10
      • 1970-01-01
      相关资源
      最近更新 更多