如何访问textfield并将其设置为字符串?我正在使用scenebuilder和eclipse

fkvaft9z  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(625)

我正在为银行账户管理编写一个非常简单的用户界面。我尝试获取用户在文本框中写入的任何名称,并将其设置为字符串。我还试图通过使用 textArea 而不是 System.out.print(); 但每当我尝试 getText() 或者 setText() 我得到这个错误:
原因:java.lang.nullpointerexception:无法调用“javafx.scene.control.textfield.gettext()”,因为“this.txtname”在application.controller.addpersonclick(controller)处为null。java:26).
如果能帮上点忙,我将不胜感激。我正在使用eclipse和scenebuilder。
这就是我的代码在 class Controller (并非全部):

PersonRegister register = new PersonRegister();
Person per = new Person();
Account account = new Account();

@FXML
public void addPersonClick(ActionEvent event) {
    String nameIn = txtName.getText(); //Error
    String pNbrIn = "temp"; //Works fine
    if(register.findPerson(pNbrIn) == null) {
        per.setName(nameIn);
        per.setPNbr(pNbrIn);
        register.addPerson(per);
        System.out.println("Added "+per.getName()+" "+per.getPNbr()); //Works fine
        txtAreaResponse.setText("Added "+per.getName()+" "+per.getPNbr());//Error
    } else {
        System.out.println("Person already exists");//Works fine
        txtAreaResponse.setText("Person already exists"); //Error
    }
}

下面是我的ui的代码(关于相关的 textField 以及 textArea ):

<TextField layoutX="16.0" layoutY="32.0" />
<TextArea layoutX="17.0" layoutY="263.0" prefHeight="134.0" prefWidth="402.0" />
dz6r00yl

dz6r00yl1#

在场景生成器中为textfield指定一个id,我假设 myTextField 在下面的代码中。然后在控制器类中声明它。

@FXML
private TextField myTextField;

相关问题