Java检查玩家ID

时间:2018-03-01 16:48:30

标签: java arraylist javafx

目前正在处理一个项目,我有一个玩家类,我有一个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);
    }

这就是我现在得到的,它可以工作但是当我来到最后一个玩家时,我必须按两次按钮才能循环到开始?

2 个答案:

答案 0 :(得分:1)

它选择第二个玩家会导致你先加count。顺序是这样的:

selectPlayer(count);
count++;

答案 1 :(得分:0)

我认为当你第一次按下按钮按下代码时(假设count == 0),它会落入&#34; else&#34;条件。在&#34; else&#34;阻止,你要做的第一件事是递增计数(所以现在,count == 1)。你的第一个玩家可能有ID = 0,而你的第二个玩家ID = 1。要修复,请切换else块中的两行,以便选择播放器THEN增量计数。