使用 GridBagLayout,我尝试创建一个表格,当我这样做时,它会创建一个没有标题行的表格,因此我添加了一个 JScrollPane。问题是 JScrollPane 导致标题显示,但所有其他行不显示。
Object rowData[][] = { { "1", "Row1-Column2"},
{ "2", "Row2-Column2"} };
Object columnNames[] = { "#", "Column Two"};
forms = new JTable(rowData, columnNames);
forms.getColumnModel().getColumn(0).setPreferredWidth(27);
forms.getColumnModel().getColumn(1).setPreferredWidth(450);
forms.getColumnModel().getColumn(0).setResizable(false);
forms.getColumnModel().getColumn(1).setResizable(false);
forms.putClientProperty("JTable.autoStartsEdit", Boolean.FALSE);
JScrollPane fScrollpane = new JScrollPane(forms, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
fScrollpane.setPreferredSize(new Dimension(500, 110));
c.fill = GridBagConstraints.HORIZONTAL;
c.gridx = 0;
c.gridy = 2;
c.gridwidth = 2;
pane.add(fScrollpane, c);
最佳答案
我没有发现基本代码有问题,除非您不应该对组件的首选大小进行硬编码。
而不是使用:
//fScrollpane.setPreferredSize(new Dimension(500, 110));
尝试使用:
forms.setPreferredScrollableViewportSize(forms.getPreferredSize());
如果这没有帮助,请发布适当的 SSCCE这说明了问题。
关于java - 使用 GridBagLayout JTables 和 JScrollPane 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24246494/