ある種のアニメーションを保持するレイヤードペインがあります。Jlabel(breakB)を使用して、壊れているブロックの上に壊れているアニメーションを表示しています。ブロックが壊れると問題が発生します。ラベルは消えるはずですが、代わりに表示されたままになります。私は何時間も解決策を探していましたが、何が起こっているのか本当にわかりませんので、助けていただければ幸いです。
class breakBlock implements ActionListener {
public void actionPerformed(ActionEvent e) {
damageCount+=1;
System.out.println(damageCount);
JLabel breakB = new JLabel();
ImageIcon breakIcon = new ImageIcon();
if(digDown){
blockInt = standingOn;
} else {blockInt = nextTo;}
if(damageCount == 1){
breakIcon = new ImageIcon(break01);
}
if(damageCount == 2){
breakIcon = new ImageIcon(break02);
}
if(damageCount == 3){
breakIcon = new ImageIcon(break03);
}
if(damageCount == 4){
breakIcon = new ImageIcon(break04);
}
if(damageCount == 5){
breakIcon = new ImageIcon(break05);
}
breakB.setIcon(breakIcon);
breakB.setBounds(solidObjects.get(blockInt).getX(), solidObjects.get(blockInt).getY(), breakIcon.getIconHeight(), breakIcon.getIconWidth());
layeredPane.add(breakB, new Integer(2), 0);
if(damageCount == 6){
layeredPane.remove(solidObjects.get(blockInt));
layeredPane.remove(breakB);
layeredPane.repaint(); // sometimes needed
solidObjects.remove(blockInt);
damageCount = 0;
breakBlock.stop();
}
}
}