所以我试图从RPG /生存型游戏的玩家那里得到一个数字输入,使用showInputDialog来显示选项,提示用户输入一个数字。我的问题是,如果按cancel
,我会收到致命错误。
这是我目前的代码:
String typeReader;
do{
typeReader = JOptionPane.showInputDialog(options);
}while(typeReader.isEmpty());
if (typeReader.isEmpty())
typeReader = "0";
charType = Integer.parseInt(typeReader);
这是我得到的错误:
Exception in thread "main" java.lang.NullPointerException
at Game.main(Game.java:66)
Java Result: 1
BUILD SUCCESSFUL (total time: 14 seconds)
理想情况下,如果用户按下cancel
,程序只会将其读作空字符串:
typeReader = "";
有人可以帮忙吗?
答案 0 :(得分:0)
好的,你似乎对此很新;-) 首先,你不需要循环。只需写下
String typeReader = JOptionPane.showInputDialog(options);
如果用户点击"取消",之后typeReader
将为null
。 null
不是对象,因此您无法在其上调用isEmpty()
并获得NullPointerException。相反,您应该检查null
:
if (typeReader != null) {
...
}
您应该阅读Oracle tutorial on dialogs,也可以阅读Javadoc。