JTable 在 JScrollPane 中不可见

JTable not visible inside JScrollPane

我在 JScrollPane 中有一个 JTable。我只想在按下特定按钮时显示 table,否则不应显示。

为了合并,我在声明时将 ScrollPane 的 setVisible 方法设置为 false,并在 actionPerformed 方法中将其设置为 true JButton.

但即使按下 JButton,JTable 也不可见。

这是我的代码:

     public class TableSample{
        private JTable table;
     ....
        private void initialize() {
            JScrollPane scrollPane = new JScrollPane();
            table = new JTable(new DefaultTableModel(new Object[][] {{null, null}, {null, null}, }, new String[] {"column1", "column2"}));
            scrollPane.setViewportView(table);
            scrollPane.setVisible(false);
            JButton button = new JButton("Show Table");
            button.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {        
                     ....
                     scrollPane.setVisible(true);
                     ....
                }
            });
     ....
        }

我使用了组布局,因此将 ScrollPane 添加到组布局的框架中。

当我根本不更改 setVisible 时,JTable 也是可见的(默认情况下 true

感谢任何帮助...

当您将组件添加到可见 GUI 时,基本逻辑是:

panel.add(...);
panel.revalidate(); // to invoke the layout manager
panel.repaint();  // sometimes needed to make sure panel is repainted