添加到JScrollPane后JTable没有显示?

时间:2013-06-05 09:02:17

标签: java swing jframe jscrollpane border-layout

我有一个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);
}

感谢。

2 个答案:

答案 0 :(得分:1)

不要设置 null 布局。它不是“默认布局”,也不是“最简单的实现”。实际上很难做对。

JFrame默认使用BorderLayout。添加JProgressBar BorderLayout.NORTHJTextPane添加BorderLayout.SOUTHJScrollPane添加BorderLayout.CENTER。删除所有setBounds。组件将出现。如果您需要以某种复杂的方式定位它们,请阅读GridBagLayout

答案 1 :(得分:0)

定义表的大小并设置相同的大小以滚动窗格。

scrollPane.setSize(table.getSize());