Jlabels의 배열이 있으며 각각에 imageIcon이 첨부되어 있습니다. 첨부 파일은 몇 번 호출 된 메서드에서 생성자 외부에서 발생하며 메서드의 끝에 repaint()를 사용합니다.이미지가있는 JLabel은 화면에서 지워지지 않습니다.
문제가,하는 certin의 JLabel이 된 후 무승부, 나는 그에게 "열어 젖히다, 난 변경할 경우에도 JLabel의 (또는 이미지) null로 할 수 없습니다. 그냥 거기에있을 것입니다.
내가 배경색을 재설정하고 재 검증을 다시 칠려고, 비는 일을 할 것 같다
아이디어
편집 :.? 내가하려고 다음 (동부 서머 타임 내부) 및 배열의 마지막 JLable 만 변경하는 것 같습니다 :
for (int j = 0;j<playerCards.length;j++){
remove(playerCards[j]);
}
코드가 잘못되어 문제를 시연하는 'SSCCE'를 게시하지 않았기 때문에 코드가 잘못되었습니다. setIcon() 메서드가 작동합니다. repaint()를 사용할 필요조차 없습니다. 왜냐하면 레이블은 속성 중 하나가 변경 될 때 자체를 다시 그리기에 충분히 똑똑하기 때문입니다. – camickr
부모 컨테이너에서'remove()'를 사용 했습니까? 나는 JLabel을 null로 바꾸는 것이 무엇을 의미하는지 모른다. 예를 들어,'JLabel [] arr; 그리고 나중에'arr [i] = null;'이 GUI에 아무런 영향을 미치지 않는다면 (당신의'JLabel []'배열). – ajb