gpt4 book ai didi

java - 字段中的数据错误

转载 作者:行者123 更新时间:2023-12-01 15:50:45 25 4
gpt4 key购买 nike

这是我程序中的类片段(我删除了一些不重要的代码)。首先,程序总是调用方法firstSet()来设置JPanel(board)上的所有JLabels(players)。然后,当我单击 JLabel 时,mouseClicked() 运行方法 findPlayer(),因此我知道谁选择了哪个 JLabel。到目前为止一切都很好。

当我开始模拟时,问题就开始了 - 方法 simulationStart() 运行了 10 次。此后,当我单击播放器时,cmd 行显示:我找不到它:(。我编写了一些 system.out 来找出问题所在。问题出在字段 locationXlocationY,我不知道为什么它们在 findPlayer()simulationStart() 中不同。

public class setBoard extends JFrame implements MouseListener {

int[] locationX = new int[100];
int[] locationY = new int[100];

public void setLocation() {
for (int i = 0; i < 100; i++) {
locationX[i] = (int) (random() * (sizeX - xy));
locationY[i] = (int) (random() * (sizeY - xy));
}
}

public ArrayList<JLabel> firstSet() {
setLocation();

for (int i = 0; i < 100; i++) {
player = new JLabel();

//
//some code to JLabel set
//

playerList.add(player);
player.setBounds(locationX[i], locationY[i]);
player.addMouseListener(this);
}

return playerList;
}

public ArrayList<JLabel> simulationStart(ArrayList<JLabel> playerList) {
this.playerList = playerList;

setLocation();

for (int i = 0; i < 100; i++) {
playerList.get(i).setBounds(locationX[i], locationY[i]);
playerList.add(playerList.get(i));
}
return playerList;
}

public void mouseClicked(MouseEvent e) {
//
//a lot of code to search coursorX and coursorY, this works good
//

//if left mouse button
if (e.getButton() == 1) {
final int playerNr = findPlayer(coursorX, coursorY);
if (playerNr == -1) {
System.out.println("I can`t find it :( ");
}
else{
//
//code to do when it find player
//
}
}
}

//
//
//

private int findPlayer(int x, int y) {
int playerNr = -1;
for (int i = 0; i < 100; i++) {
if (x == locationX[i] && y == locationY[i]) {
playerNr = i;
}
}
return playerNr;
}

}

最佳答案

每当您调用simulationStart时,您都会再次将玩家添加到playerList中。所以玩家数量超过 100。为什么不尝试打印出playerList 的大小并检查它是否是您期望的?

我认为您可能需要删除以下语句:playerList.add(playerList.get(i));

关于java - 字段中的数据错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6098573/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com