-1
我想为每个网格的每个第一行/列添加标签“Day/Time”。它似乎只是添加到最后一个网格。请参阅附件图片。以黄色突出显示在哪里我想补充我的标签“日期/时间”如何将JLabel添加到每个第一行,JPanel中的第一列
附网格是代码:
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