JavaFX TextField 导致 NullPointerException
JavaFX TextField causes NullPointerException
我正在使用带有事件的按钮来控制用户的输入,但我无法检查 TextField 是否为空。
TextField 和 Button 在按钮事件之前声明,如
TextField svar = new TextField();
Button submitB = new Button("submit");
这是我的代码:
submitB.setOnAction((event) -> {
if (svar.getText().equals(null) {
primaryStage.setTitle("No input!");
}
if (svar.getText().subSequence(0, 1).toString().toLowerCase().equals(animals.get(pic).getName().subSequence(0, 1).toString().toLowerCase())) {
primaryStage.setTitle("RÄTT!");
bild.setImage(new Image(animals.get(pic+=1).getImgsrc()));
svar.setText(null);
svar.requestFocus();
}
else
{
primaryStage.setTitle("FEL!");
svar.setText(null);
svar.requestFocus();
}
});
上面这段代码是我认为应该处理 TextField 为空的情况的代码:
if (svar.getText().equals(null) {
primaryStage.setTitle("No input!");
}
但是无论如何我仍然收到 NullPointerException。我尝试了一些不同的解决方案,但都失败了,我希望有人能给我指出正确的方向。谢谢!
与其调用 equals 来检查 null,不如使用“==”,例如:
if (svar.getText() == null) {
你得到 NPE (NullPointerException) 的原因是,因为正如你所说 svar.getText()
是 null,你正试图在 null 上调用 equals 和 NPE 的原因。
正确的做法不是检查 Null,而是检查空字符串:
if (svar.getText().equals("") {
primaryStage.setTitle("No input!");
}
有些人更喜欢:
if ("".equals(svar.getText() {
primaryStage.setTitle("No input!");
}
我正在使用带有事件的按钮来控制用户的输入,但我无法检查 TextField 是否为空。 TextField 和 Button 在按钮事件之前声明,如
TextField svar = new TextField();
Button submitB = new Button("submit");
这是我的代码:
submitB.setOnAction((event) -> {
if (svar.getText().equals(null) {
primaryStage.setTitle("No input!");
}
if (svar.getText().subSequence(0, 1).toString().toLowerCase().equals(animals.get(pic).getName().subSequence(0, 1).toString().toLowerCase())) {
primaryStage.setTitle("RÄTT!");
bild.setImage(new Image(animals.get(pic+=1).getImgsrc()));
svar.setText(null);
svar.requestFocus();
}
else
{
primaryStage.setTitle("FEL!");
svar.setText(null);
svar.requestFocus();
}
});
上面这段代码是我认为应该处理 TextField 为空的情况的代码:
if (svar.getText().equals(null) {
primaryStage.setTitle("No input!");
}
但是无论如何我仍然收到 NullPointerException。我尝试了一些不同的解决方案,但都失败了,我希望有人能给我指出正确的方向。谢谢!
与其调用 equals 来检查 null,不如使用“==”,例如:
if (svar.getText() == null) {
你得到 NPE (NullPointerException) 的原因是,因为正如你所说 svar.getText()
是 null,你正试图在 null 上调用 equals 和 NPE 的原因。
正确的做法不是检查 Null,而是检查空字符串:
if (svar.getText().equals("") {
primaryStage.setTitle("No input!");
}
有些人更喜欢:
if ("".equals(svar.getText() {
primaryStage.setTitle("No input!");
}