使用JOptionPane,int不能在showConfirmDialog中转换为String

时间:2015-09-10 06:22:08

标签: java joptionpane

我正在尝试在主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方法以捕获整数值?请告知。

2 个答案:

答案 0 :(得分:1)

变量SpeechDecision可能是字符串,它应该是int,因为它是showConfirmDialog的返回值,请参阅其签名:

public static int showConfirmDialog(...)
              ↑

很少注意到:

  • 关注Java Naming Conventions
  • 不要使用==比较字符串,而是使用equals
  • 缩进代码以获得更好的世界

答案 1 :(得分:0)

你可以这样做:

  int speechDecision = JOptionPane.showConfirmDialog(null, message, title,     JOptionPane.YES_NO_OPTION);
  if (speechDecision == JOptionPane.YES_OPTION)
  {
      // Do something here
  }