我在扩展javax.swing.JPanel的类中遇到了一个问题,当我调用remove(我要删除的JLabel)时,它没有删除JLabel。我之前用普通的JPanel也有同样的问题。我该如何解决这个问题?我听说过SwingWorker这个名词,那它能用吗?Layout是FlowLayout。这是我的代码。
public class Game extends JPanel implements Runnable
private void removeCards() {
for (JLabel imgLabel : cardImages) {
remove(imgLabel);
}
cardImages.clear();
display.pack();
}
public void reset() {
player.resetHand();
dealer.resetHand();
deck.resetCurrentCard();
removeCards();
phase = 0;
beginGame();
if (phase == 3)
remove(winnerSign);
display.pack();
}
在调用复位方法后(JButton被按下) 除了JLabels没有被移除之外 所有的东西都会被执行。 它应该有点像这样,只是每张卡都是2张。 但看起来是这样的,之前的卡片没有被移除。
我已经试过添加类似repaint()这样的东西,但没有用。 有人有办法解决这个问题吗?先谢谢你了。 (是的,这一切看起来都很糟糕,但我专注于代码,然后去游戏好看。)