当我在Swing中按下CANCEL选项时,我得到NullPointerException
。
代码:
while(!input.equals(CANCEL_OPTION));
我收到的消息是它说的是不兼容的类型......
这是我的完整代码..
do
{
input=JOptionPane.showInputDialog("Enter a String.");
for(int i =input.length()-1;i>=0;i--)
{
result = result + (input.charAt(i));
disp.append("\n").append(result);
}
JOptionPane.showMessageDialog(null,input+"\n"+disp+"\n"+"\n"+result);
input="";
disp.setLength(0);
result="";
}
while(!input.equals(CANCEL_OPTION));
错误代码或其他..
Exception in thread "main" java.lang.NullPointerException
at Reverse.main(Reverse.java:15)
Java Result: 1
答案 0 :(得分:5)
作为JOptionPane.showInputDialog()州的javadoc
返回用户的输入,或null表示用户取消了输入
如果您希望用户输入内容。
do {
input = JOptionPane.showInputDialog("Enter a String.");
} while (input == null); // user can't cancel
for (int i = input.length() - 1; i >= 0; i--) {
result = result + (input.charAt(i));
disp.append("\n").append(result);
}
....
答案 1 :(得分:0)
将您的do while
换成简单的while
。不同之处在于,do while
会在达到测试条件之前运行一次。您的代码正在接收CANCEL_OPTION
值null
,尝试使用它,然后测试它是否为null
。您需要将测试开始。
示例
input=JOptionPane.showInputDialog("Enter a String.");
while(input != null) {
// Your code here.
}
注意 :这将为用户提供取消选项。如果他们这样做,它将跳过处理用户输入。
答案 2 :(得分:0)
当您按下取消按钮时,JOptionPane不返回任何内容,因此您的输入等于null。并且您的代码已经输入了do scoop,当您的代码到达该行时:
for(int i =input.length()-1;i>=0;i--)
输入已为空。
我更喜欢在该行之后添加以下内容:
if(input == null) {
break;
}
答案 3 :(得分:0)
只需使用try catch语句..
try
{
do
{
//your codesss......
}
while(!input.equals(null));
}
catch(Exception ex)
{
////code..
}
希望它有所帮助。