我正在尝试在主Java类中运行以下代码:
personName = JOptionPane.showInputDialog("Enter the name of the person !");
onepty.setNameOfPerson(personName);
SpeechDecision = JOptionPane.showConfirmDialog(null,
"Select Yes or No", "choose one", JOptionPane.YES_NO_OPTION);
onepty.speechCheck(speechDecision);
我正在通过onepty
对象访问的数据定义类中定义了以下方法,如上所示:
public String speechCheck(String str){
if(str == "Yes" || str =="YES"||str == "Y" ||str== "y"||str=="YEs"||str=="yeS"||str=="yES"){
this.speechVar = str;
}
else {
this.speechVar = str;
}
}
但是在使用jGrasp编译后我收到以下错误:
error: incompatible types: int cannot be converted to String
speechDecision = JOptionPane.showConfirmDialog(null,
^
1 error
虽然错误是自我解释的,但由于我是jOptionPane的网络,我想知道用户在点击是或否选项后选择的按钮输入是否存储为整数而不是字符串?我是否需要修改我的speechCheck
方法以捕获整数值?请告知。
答案 0 :(得分:1)
变量SpeechDecision
可能是字符串,它应该是int
,因为它是showConfirmDialog
的返回值,请参阅其签名:
public static int showConfirmDialog(...)
↑
很少注意到:
==
比较字符串,而是使用equals
答案 1 :(得分:0)
你可以这样做:
int speechDecision = JOptionPane.showConfirmDialog(null, message, title, JOptionPane.YES_NO_OPTION);
if (speechDecision == JOptionPane.YES_OPTION)
{
// Do something here
}