单击按钮后,如何将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();
该代码应该重新验证()然后repaint()。 revalidate()调用布局管理器,以便组件具有合适的大小和位置。通常面板会重新绘制自己,但是,重新添加repaint()以确保面板重新绘制自己。 – camickr
@camickr我会做出必要的改变。谢谢 – KMuir