0

我想让表格宽度至少适合封闭滚动窗格的宽度,如果它变大,则使用水平滚动条。

的自动调整大小模式都不JTable适合我的需要:AUTO_RESIZE_OFF确实允许调整表格的大小大于滚动窗格的宽度,但它不能限制表格的最小宽度;其他模式根本不允许表格宽度大于滚动窗格的宽度。

我尝试将最小尺寸设置如下,但它不起作用:

JTable table = new JTable(myModel);
JScrollPane scrollPane = new JScrollPane(table);
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

// After the table is displayed.
table.setMinimalSize(scrollPane.getSize());

有什么想法可以实现吗?

4

1 回答 1

3

我尝试将最小尺寸设置如下,但它不起作用:

table.setMinimalSize(scrollPane.getSize());

  • JTable并且JScrollPane不能合理退货MinMax并且PreferredSize

  • 您可以通过使用(小心地使用行数,否则您必须计算 Dimension 而不是 JTable.getP...)来适应(在应用程序启动时)JScrollPanes维度到 JTable ,在运行时必须由和容器嵌套验证,不要那样做table.setPreferredScrollableViewportSize(table.getPreferredSize());JFrame.pack()revalidate()repaint()JScrollPane

  • 不要重新发明轮子,使用@camickr表格列调整器的固定列表,从您的描述中不清楚,这取决于您的...

JTable 的宽度 >= 封闭滚动窗格的宽度?

  • 无法扭转这个想法
于 2013-07-10T06:42:04.870 回答