-1
各グリッドの各最初の行/列に "Day/Time"というラベルを追加しようとしています。それは最後のグリッドにのみ追加されているようです。添付の画像をご覧ください。JPanelの最初の行、最初の列にJLabelを追加するには
private void buildGridPanel() {
for (int countRoom=0; countRoom < roomPanels.length; countRoom++) {
roomPanels[countRoom] = new JPanel();
roomPanels[countRoom].setLayout(new GridLayout(ROW, COL));
roomPanels[countRoom].setBorder(BorderFactory.createEmptyBorder(1, 1, 1, 1));
if (countRoom == 0) {
roomPanels[countRoom].setBorder(BorderFactory.createTitledBorder(roomList[countRoom]));
} else if (countRoom == 1) {
roomPanels[countRoom].setBorder(BorderFactory.createTitledBorder(roomList[countRoom]));
} else {
roomPanels[countRoom].setBorder(BorderFactory.createTitledBorder(roomList[countRoom]));
}
for (int i = 0; i < ROW; i++) {
for (int j = 0; j < COL; j++) {
//create new panel for every grid
JPanel pan = new JPanel();
pan.setEnabled(true);
pan.setBackground(Color.WHITE);
pan.setPreferredSize(new Dimension(3, 3));
pan.setBorder(BorderFactory.createLineBorder(Color.BLACK));
// an exception to not click the top row and most left column
// headers
if (i != 0 && j != 0) {
pan.addMouseListener(new BoxListener()); // add a mouselistener to make the grid panel clickable
}
// set names for each panel for later use
if (countRoom == 0) {
pan.setName(roomList[countRoom] + "_" + i + "_" + j);
if (i == 0 && j == 0) {
pan.add(labelDayTime);
}
} else if (countRoom == 1) {
pan.setName(roomList[countRoom] + "_" + i + "_" + j);
if (i == 0 && j == 0) {
pan.add(labelDayTime);
}
} else {
pan.setName(roomList[countRoom] + "_" + i + "_" + j);
if (i == 0 && j == 0) {
pan.add(labelDayTime);
}
}
// add the panel to the room panels
roomPanels[countRoom].add(pan);
} // end for loop COL
} // end for loop ROW
// add each room panels to the center panel
centerPanel.add(roomPanels[countRoom]);
} // end for loop
}
それは私に多くの助けになります!あなたの助けに感謝! – tdel
@tdel、うれしかったです。チェックマークをクリックして回答を「受け入れる」ことを忘れないでください。人々は問題が解決されたことを知ります。 – camickr