目前正在处理一个项目,我有一个玩家类,我有一个ID,每次创建一个对象时自动递增,然后我的所有对象都在一个数组列表(PlayerList)。我正在尝试设置文本一个标签到玩家名称,但它只是跳过第一个玩家然后它不会循环回来我得到一个java运行时错误。
此代码将所有玩家加载到表格中:
public void initialize() {
for (RadioButton button : radios) {
button.setDisable(true);
button.setOpacity(1);
}
loadPlayers();
selectPlayer(0);
}
public void selectPlayer(int count){
for(Player player : PlayerList) {
if(player.getPlayerID() == count) {
Player activePlayer = PlayerList.get(count);
playerName.setVisible(true);
String name = activePlayer.getName();
playerName.setText(name);
System.out.println(count);
System.out.println(activePlayer);
}
}
}
从上面的代码我想循环播放器列表并从计数器中拉出播放器,我也有下面的代码按下按钮运行,下面的代码会增加计数或重置计数。 / p>
if(count == PlayerList.size()){
count = 0; //reset the count
}else{
count++;
selectPlayer(count);
}
当我运行代码时,它总是拉第二个玩家而不是第一个玩家我不确定出了什么问题,任何帮助都会非常感激。
更新
if (count <= size) {
Player activePlayer = PlayerList.get(count);
playerName.setVisible(true);
String name = activePlayer.getName();
playerName.setText(name);
System.out.println(count);
}else if(count == size){
count=0;
selectPlayer(count);
}
这就是我现在得到的,它可以工作但是当我来到最后一个玩家时,我必须按两次按钮才能循环到开始?
答案 0 :(得分:1)
它选择第二个玩家会导致你先加count
。顺序是这样的:
selectPlayer(count);
count++;
答案 1 :(得分:0)
我认为当你第一次按下按钮按下代码时(假设count == 0),它会落入&#34; else&#34;条件。在&#34; else&#34;阻止,你要做的第一件事是递增计数(所以现在,count == 1)。你的第一个玩家可能有ID = 0,而你的第二个玩家ID = 1。要修复,请切换else块中的两行,以便选择播放器THEN增量计数。