单击按钮后,如何将JTable添加到JPanel?

问题描述:

如何在用户点击按钮后将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(); 
      } 
     } 

我能解决问题。我添加了以下代码行来解决问题。

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

该代码应该重新验证()然后repaint()。 revalidate()调用布局管理器,以便组件具有合适的大小和位置。通常面板会重新绘制自己,但是,重新添加repaint()以确保面板重新绘制自己。 – camickr

+0

@camickr我会做出必要的改变。谢谢 – KMuir