2016-12-04 7 views
-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 


} 

enter image description here

答えて

1

は、コンポーネントは、単一の親を持っているだけことができ:黄色で強調表示私はラベル「日/時間」添付

を追加したいグリッドは、コードされています任意の時点でパネルの1つの部分に存在する。

複数のJLabelを作成し、各JLabelを別々にパネルに追加する必要があります。

+0

それは私に多くの助けになります!あなたの助けに感謝! – tdel

+0

@tdel、うれしかったです。チェックマークをクリックして回答を「受け入れる」ことを忘れないでください。人々は問題が解決されたことを知ります。 – camickr

関連する問題