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