2016-12-04 5 views
-1

Ich versuche, die Beschriftung "Day/Time" zu jeder ersten Zeile/Spalte für jedes Raster hinzufügen. Es scheint, dass es nur zum letzten Gitter hinzufügt. Bitte beachten Sie das beigefügte Bild. Hervorgehoben in gelb sind die Gitter, wo ich will mein Label „Tag/Zeit“Wie JLabel zu jeder ersten Zeile hinzufügen, erste Spalte in JPanel

Befestigt hinzuzufügen sind der Code:

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

Antwort

1

Eine Komponente kann nur einen einzelnen Elternteil hat und kann nur existieren zu einem bestimmten Zeitpunkt auf einem Teil eines Panels.

Sie müssen mehrere JLabels erstellen und jedes JLabel separat zum Panel hinzufügen.

+0

Das hilft mir sehr! Schätze deine Hilfe! – tdel

+0

@Tdel, froh, dass es geholfen hat. Vergessen Sie nicht, die Antwort zu akzeptieren, indem Sie auf das Häkchen klicken, damit die Leute wissen, dass das Problem gelöst wurde. – camickr

Verwandte Themen