0
많은 아이콘이 그려진 그리드 레이아웃 JPanel이 있습니다. 지도가 변경되어 플레이어가 움직 인 후에 아이콘을 변경해야합니다. 여기 나와있는 방법은 다음과 같습니다.Java GUI - 모든 구성 요소를 제거하고 다시 그립니다.
public void initGridIcons(JPanel pnl, String map) {
pnl.removeAll();
char[] tiles = map.toCharArray();
for (char ch : tiles) {
JLabel label = new JLabel("");
String icon = "";
switch (ch) { // lots of cases irrelevant to problem
}
label.setIcon(new ImageIcon(ClientGUI.class
.getResource("/resources/" + icon)));
pnl.add(label);
}
}
이것은 플레이어와지도를 올바르게 그립니다. 그러나 매 턴마다 변경되지 않습니다.
필자는 반복자 카운터 (짝수의 변경)와 함께이 방법을 사용하여 다른 코드가 아니 었는지 확인하려고 시도했지만 작동하지 않으므로 이것이 확실합니다.
pnl.revalidate() 및 pnl.repaint()가 도움이되었습니다. 감사합니다. – njl