2017-04-09 14 views
0

ユーザーがボタンをクリックした後にJPanelにJTableを追加する方法はありますか? JLabelは、ボタンがクリックされた後にJPanelに追加されますが、JTableでは追加されません。ボタンをクリックした後、どのようにJPanelにJTableを追加できますか?

 @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

コードはrevalidate()、次にrepaint()する必要があります。 revalidate()はレイアウトマネージャを呼び出し、コンポーネントが適切なサイズと場所を持つようにします。通常、パネルはそれ自身を再描画しますが、パネルが再描画されるようにrepaint()が追加されます。 – camickr

+0

@camickr必要な変更を行います。ありがとうございました – KMuir

関連する問題