我正在为银行账户管理编写一个非常简单的用户界面。我尝试获取用户在文本框中写入的任何名称,并将其设置为字符串。我还试图通过使用 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" />
1条答案
按热度按时间dz6r00yl1#
在场景生成器中为textfield指定一个id,我假设
myTextField
在下面的代码中。然后在控制器类中声明它。