因此,我目前正在自学使用GUI,因此我决定返回所创建的Go Fish游戏的代码,并将其添加到GUI中。对于装有CPU播放器卡的面板,它会显示一些纸牌的背面,以指示CPU的手的大小。
每当CPU的手大小发生变化时,都会调用我的方法updateComputerCards
来调整屏幕上显示的卡片数量。它通过为我的面板调用removeAll()
方法来执行此操作,然后继续重新添加适当数量的卡图像。
但是,我的问题是,当游戏第一次开始并且在CPU的手中找到匹配项时,该方法可以按预期工作,并且出现的卡数减少。但是,在以后每次调用该方法时,尽管CPU拥有不同大小的卡,但GUI中没有任何变化。
通过调试器,我可以看到removeAll()
方法由于某种原因并没有删除面板上的所有组件,即使该方法成功完成操作也没有第一次被调用的问题。有人可以帮我吗?
public void updateComputerCards(ArrayList<Integer> hand) {
labelPanel.removeAll();
for (int i = 0; i < hand.size(); i++) {
labelPanel.add(computerCardLabels.get(i));
labelPanel.add(b.createHorizontalStrut(10));
}
}