Java 如何将JLabel添加到JPanel中的每个第一行、第一列
我正在尝试为每个网格的每个第一行/列添加标签“天/时间”。它似乎只添加到最后一个网格中。请参阅所附图片。以黄色突出显示的是我要添加标签“天/时间”的网格 随函附上代码:Java 如何将JLabel添加到JPanel中的每个第一行、第一列,java,swing,user-interface,jlabel,Java,Swing,User Interface,Jlabel,我正在尝试为每个网格的每个第一行/列添加标签“天/时间”。它似乎只添加到最后一个网格中。请参阅所附图片。以黄色突出显示的是我要添加标签“天/时间”的网格 随函附上代码: private void buildGridPanel() { for (int countRoom=0; countRoom < roomPanels.length; countRoom++) { roomPanels[countRoom] = new 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
}
private void buildGridPanel(){
对于(int countRoom=0;countRoom
组件只能有一个父组件,并且在任何给定时间只能存在于面板的一个部分上
您需要创建多个JLabel,并将每个JLabel分别添加到面板中。这对我帮助很大!谢谢你的帮助@tdel,很高兴这有帮助。不要忘记点击复选标记“接受”答案,这样人们就知道问题已经解决了。