Java 添加到JScrollPane后JTable不显示?

Java 添加到JScrollPane后JTable不显示?,java,swing,jframe,jscrollpane,border-layout,Java,Swing,Jframe,Jscrollpane,Border Layout,我有一个JTable,它显示得很好。如果我将表放在JScrollPane中,它将不再显示。为什么不呢?我想将这两个表分别添加到自己的JScrollPane中。下面是我的代码,其中我仅尝试将JScrollPane添加到第一个表中: private void initialize() { frame = new JFrame(); frame.setBounds(100, 100, 1000, 800); frame.setDefaultCloseOperation(JFra

我有一个JTable,它显示得很好。如果我将表放在JScrollPane中,它将不再显示。为什么不呢?我想将这两个表分别添加到自己的JScrollPane中。下面是我的代码,其中我仅尝试将JScrollPane添加到第一个表中:

private void initialize() {
    frame = new JFrame();
    frame.setBounds(100, 100, 1000, 800);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.getContentPane().setLayout(null);

    JProgressBar progressBar = new JProgressBar();
    progressBar.setBounds(50, 68, 700, 14);
    frame.getContentPane().add(progressBar);

    JTextPane txtpnAutomotiveHmi = new JTextPane();
    txtpnAutomotiveHmi.setText("Automotive HMI");
    txtpnAutomotiveHmi.setBounds(362, 21, 205, 20);
    frame.getContentPane().add(txtpnAutomotiveHmi);


    testcase_table = new JTable();
    testcase_table.setBounds(50, 125, 350, 426);
    JScrollPane scroll_testcase = new JScrollPane(testcase_table);
    frame.getContentPane().add(scroll_testcase);

    teststep_table = new JTable();
    teststep_table.setBounds(399, 125, 350, 426);
    frame.getContentPane().add(teststep_table);
}

谢谢。

定义表格的大小,并将相同的大小设置为滚动窗格

scrollPane.setSize(table.getSize());
不要设置空布局。它不是“默认布局”,也不是“最简单的实现”。事实上,很难做到正确


默认情况下,
JFrame
使用
BorderLayout
。添加
JProgressBar
BorderLayout.NORTH
JTextPane
JScrollPane
BorderLayout.CENTER
。删除所有
设置框
。组件将出现。如果您需要以复杂的方式定位它们,请阅读
GridBagLayout

您犯的第一个错误是:
frame.getContentPane().setLayout(null)
之后,所有对
setBounds
的调用都是附加调用。使用合适的
LayoutManager
,您的所有问题都会得到解决。为什么您要将
teststep\u表直接添加到内容窗格而不是
JScrollPane
?虽然
gridbagloayout
可以做很多事情,但许多人发现很难使用它。相反,我会考虑使用嵌套面板,也可以很容易地实现复杂的布局。但是使用
LayoutManager