1

以下は私のコードです。スタッドはプレーヤーですが、if (Stud.equals("North")) は比較できないと言っています。それらを比較する別の方法はありますか?

String[] options = new String[] {"North", "South", "East", "West"}; 

JOptionPane.showOptionDialog(null, p + " " + Stud.distance(Comp) + " away" +  
    " Which way do you want to move?", "" + p + " is at " + Stud.getX() + ", " + Stud.getY() ,  
    JOptionPane.DEFAULT_OPTION, JOptionPane.PLAIN_MESSAGE,
    null, options, options[0]);

if (options.equals("North")){ 
    Stud.moveNorth();   
}
else if (options.equals("South")){
    Stud.moveSouth();
}
else if (options.equals("West")){
    Stud.moveWest();
}
else if (options.equals("East")){
    Stud.moveSouth();
}
4

1 に答える 1

1

あなたが必要int compareTo(String anotherString)

また、JOptionPane は、保存する必要がある値を返します。

このような

int optionChosen = JOptionPane.showOptionDialog(null, p + " " + Stud.distance(Comp) + " away" +  
    " Which way do you want to move?", "" + p + " is at " + Stud.getX() + ", " + Stud.getY() ,  
    JOptionPane.DEFAULT_OPTION, JOptionPane.PLAIN_MESSAGE,
    null, options, options[0]);

if (options[optionChosen].compareTo("North") == 0){ 
    Stud.moveNorth();   
}

または、これをもっと単純にintして、JOptionPane によって返された を使用して方向を選択することもできます。

このような:

if (optionChosen == 0){ 
    Stud.moveNorth();   
}
else if(optionChosen == 1){
    Stud.moveSouth();
}
...and so on.
于 2012-12-07T22:04:33.800 に答える