当我使用JOptionPane.showOptionDialog时,如何获取哪个选项?为什么我会得到不可媲美的类型错误

时间:2017-04-22 22:52:56

标签: java joptionpane

我想先请原谅我缺乏英语。我不是母语人士。

所以,我正在用Java创建一个带有GUI的摇滚剪纸游戏。

算法非常简单。我将得到一个带有三个按钮的showOptionDialog。 (摇滚,剪刀,纸)当我点击三个按钮中的一个时,Java将比较我的选择和计算机的选择。计算机将选择1~3之间的随机数

我差不多完成了我的GUI,但是我遇到了showOptionDialog

的问题
private String[]a = {"Rock","Paper","Scissor"};
private int userChoice;
/* some codes 
 */
   public void actionPerformed(ActionEvent e){
    if(e.getSource()==play){
        userChoice = JOptionPane.showOptionDialog(null,"Rock Paper Scissor","Choose",JOptionPane.YES_NO_CANCEL_OPTION,
        JOptionPane.QUESTION_MESSAGE,null,a,a[1]);
        if(userChoice==a[0] )
    }
}

我试过这样的东西,但是你知道java给我看了一个不可能的类型int和String。有什么好主意我该怎么办?

1 个答案:

答案 0 :(得分:1)

如您所知,JOptionPane.showOptionDialog()会返回int,而非String。因此,您无法将userChoiceString的{​​{1}}元素之一进行比较。相反,使用a作为索引来获得选择:

userChoice

要确定游戏结果,您可以直接使用if (userChoice != JOptionPane.CLOSED_OPTION) { String choice = a[userChoice]; // Do something with choice } ,而不是userChoice表示。例如,而不是"摇滚剪刀"把它想象成" 0击败1"。