2017-04-22 9 views
0

我想先说我的缺乏英语。我不是母语的人。如何在使用JOptionPane.showOptionDialog时点击哪个选项?为什么我会得到兼容类型的错误

因此,我正在用Java创建一个岩石剪刀纸游戏。

该算法非常简单。我将得到一个带有三个按钮的showOptionDialog。 (rock,scissor,paper)当我点击三个按钮中的一个时,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显示我的incomporable类型int和字符串。任何好主意我应该怎么做?

+0

你得到了什么确切的错误信息? –

+0

@ Code-Apprentice正如我所提到的,在编译之前,Java会显示一个可以解释的类型错误。编译后我现在不知道。我没有完成我的代码,我现在不能编译。 – ProgramLover

+0

@代码学徒问题是我知道为什么Java显示一个可以兼容的类型,但我不知道我该怎么做在其他方式 – ProgramLover

回答

1

如您所知,JOptionPane.showOptionDialog()返回int,而不是String。因此,您无法将userChoiceaString个元素之一进行比较。相反,使用userChoice作为指标来获得选择:

if (userChoice != JOptionPane.CLOSED_OPTION) { 
    String choice = a[userChoice]; 
    // Do something with choice 
} 

要确定比赛的结果,你可以很容易地使用userChoice直接,而不是String表示。例如,而不是“摇滚节拍剪刀”将其视为“0节拍1”。

+0

感谢您的回答!我现在很困,所以我不能编码,但我会在稍后测试你的建议。谢谢 – ProgramLover

相关问题