제목에 쓰여 있듯이이 JPanel에는 다른 요소 위에있는 모든 요소를 보여주는 GridLayout이 있습니다. 저는 모든 CityPanel이 160x185 픽셀이고 주 JPanel (컨테이너)이 960x556 패널이라는 것을 확인하고 발견했습니다. 실수 란 무엇입니까?GridLayout은 첫 번째 셀의 모든 것을 보여줍니다.
public class MapPanel extends JPanel {
private static final long serialVersionUID = 1L;
private CityPanel[][] cityPanels;
public MapPanel() {
super();
...
createLayout();
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
this.setSize(super.getWidth(), super.getHeight());
mapGrid.setSize(super.getWidth(), super.getHeight());
for(int i = 0; i < cityPanels.length; i++) {
for(int j = 0; j < cityPanels[i].length; j++) {
cityPanels[i][j].paintComponent(g);
}
}
}
private void createLayout() {
int columns = 6;
int rows = 6;
GridLayout layout = new GridLayout(rows, columns);
this.setLayout(layout);
cityPanels = new CityPanel[rows][columns]; //CityPanel extends JPanel
for (int r = 0; r < rows; r++) {
for (int c = 0; c < columns; c++) {
cityPanels[r][c] = new CityPanel();
add(cityPanels[r][c]);
}
}
for (City city : cities) {
cityPanels[mapGrid.getRow(city) - 1][mapGrid.getColumn(city) - 1].initialize(city, mapGrid);
}
}
}
더 나은 도움을 받으려면 [MCVE] 또는 [Short, Self Contained, Correct Example] (http://www.sscce.org/)를 게시하십시오. 이 코드는 관련성이 있다고 생각되는 무작위 비트가 아닙니다. 그것은 또한 '모든 코드'가 아닙니다. MCVE/SSCCE를 준비하기 전에 링크 된 문서를주의 깊게 읽으십시오. –