配列内の値をチェックし、それらをコンボ ボックス内の値と比較するループがあります。何らかの理由で、それらが一致しても、比較は true と評価されません。
トラブルシューティング用にシステム出力が追加されたループを次に示します。
System.out.println("Race Changed, setting new attribute min/maxes");
int raceIndex = -1;
for (int i=0;i<5;i++){
System.out.println("RaceCheck index i="
+ Integer.toString(i)
+ " raceIndex="
+ Integer.toString(raceIndex)
+ " miscData.raceData[i].raceName="
+ miscData.raceData[i].raceName
+ " cboRace.getValue()="
+ cboRace.getValue()
+ " match found="
+ (miscData.raceData[i].raceName == cboRace.getValue()));
System.out.println("|"+miscData.raceData[i].raceName+"|");
System.out.println("|"+cboRace.getValue()+"|");
if (miscData.raceData[i].raceName == cboRace.getValue()) {
raceIndex = i;
}
}
if (raceIndex < 0) {
// race was not found, default to Human
System.out.println("Race " + cboRace.getValue() + " was not found in racedata");
raceIndex = 0;
}
出力は次のとおりです。
Race Changed, setting new attribute min/maxes
RaceCheck index i=0 raceIndex=-1 miscData.raceData[i].raceName=Human cboRace.getValue()=Dwarf match found=false
|Human|
|Dwarf|
RaceCheck index i=1 raceIndex=-1 miscData.raceData[i].raceName=Elf cboRace.getValue()=Dwarf match found=false
|Elf|
|Dwarf|
RaceCheck index i=2 raceIndex=-1 miscData.raceData[i].raceName=Dwarf cboRace.getValue()=Dwarf match found=false
|Dwarf|
|Dwarf|
RaceCheck index i=3 raceIndex=-1 miscData.raceData[i].raceName=Ork cboRace.getValue()=Dwarf match found=false
|Ork|
|Dwarf|
RaceCheck index i=4 raceIndex=-1 miscData.raceData[i].raceName=Troll cboRace.getValue()=Dwarf match found=false
|Troll|
|Dwarf|
Race Dwarf was not found in racedata
コンボボックスにJavaFXを使用して、Java 7 Update 40を使用しています。それらを比較するときに、一致する値をtrueと評価するにはどうすればよいですか?