2017-04-09 106 views
0

如何在用戶點擊按鈕後將JTable添加到JPanel?點擊按鈕後JLabel被添加到JPanel中,但不是JTable。單擊按鈕後,如何將JTable添加到JPanel?

 @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(); 
      } 
     } 

回答

0

我能解決問題。我添加了以下代碼行來解決問題。

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

該代碼應該重新驗證()然後repaint()。 revalidate()調用佈局管理器,以便組件具有合適的大小和位置。通常面板會重新繪製自己,但是,重新添加repaint()以確保面板重新繪製自己。 – camickr

+0

@camickr我會做出必要的改變。謝謝 – KMuir

相關問題