2017-04-09 4 views
0

Wie kann ich eine JTable zu einem JPanel hinzufügen, nachdem der Benutzer auf eine Schaltfläche geklickt hat? Das JLabel wird dem JPanel hinzugefügt, nachdem auf die Schaltfläche geklickt wurde, nicht jedoch die JTable.Wie kann ich eine JTable zu einem JPanel hinzufügen, nachdem ich auf eine Schaltfläche geklickt habe?

 @Override 
     public void actionPerformed(ActionEvent e) { 

      ResultSet resultSet = query.getStudentDetails(operateOnSelectedStudent()); 
      JTable table = null; 
      try { 
       while (resultSet.next()) { 
        try { 
         table = new JTable(buildTableModel(resultSet)); 
         panel.add(table, BorderLayout.SOUTH); 
         panel.add(new JLabel("HELLO")); 
         panel.revalidate(); 
         JOptionPane.showMessageDialog(null, new JScrollPane(table)); 
         JScrollPane tableContainer = new JScrollPane(table); 

         panel.add(tableContainer, BorderLayout.CENTER); 
        } catch (SQLException e1) { 
         // TODO Auto-generated catch block 
         e1.printStackTrace(); 
        } 
       } 
      } catch (SQLException e1) { 
       // TODO Auto-generated catch block 
       e1.printStackTrace(); 
      } 
     } 

Antwort

0

Ich konnte das Problem lösen. Ich habe die folgenden Zeilen zum Code hinzugefügt, um das Problem zu lösen.

panel.add(tableContainer); 
panel.revalidate(); 
panel.repaint(); 
+0

Der Code sollte revalidate() dann repaint() werden. Revalidate() ruft den Layout-Manager auf, so dass die Komponenten die richtige Größe und Position haben können. Normalerweise wird das Panel sich selbst neu streichen, aber das Repaint() wird nur hinzugefügt, um sicherzustellen, dass das Panel sich selbst überstreicht. – camickr

+0

@camickr Ich werde die notwendige Änderung vornehmen. Vielen Dank – KMuir

Verwandte Themen