将 JScroll 窗格收缩到与 JTable 相同的高度
2022-09-02 12:29:03
我目前将JTables嵌套在JScrollPanes中,如下所示:
我的问题是,创建表时,每个表中的行数是可变的。我想做的是,如果表太短,JScrollpane变小,但如果表太长,我想让它保持在设定的大小。
我该如何做到这一点?
我目前将JTables嵌套在JScrollPanes中,如下所示:
我的问题是,创建表时,每个表中的行数是可变的。我想做的是,如果表太短,JScrollpane变小,但如果表太长,我想让它保持在设定的大小。
我该如何做到这一点?
Dimension d = table.getPreferredSize();
scrollPane.setPreferredSize(
new Dimension(d.width,table.getRowHeight()*rows+1));
其中表示数据的行数或限制。rows
以下(当前接受的)代码未考虑外观的各个方面:
Dimension d = table.getPreferredSize();
scrollPane.setPreferredSize(
new Dimension( d.width, table.getRowHeight() * (rows+1) ));
table.getRowHeight()
scrollPane
rows
应改用以下代码:
table.setPreferredScrollableViewportSize(
new Dimension(
table.getPreferredSize().width,
table.getRowHeight() * visible_rows));
将询问表的首选大小,并为标题和滚动条添加任何额外空间。scrollPane
下面显示了 在 具有 4 行的 a 中的差异,当从 减少到 时。的首选宽度会自动填充以包含滚动条,而不是压缩表列。另请注意,标题的空间(与行高不同)也会自动提供;它不包括在计数中。JTable
visible_rows
4
3
JScrollPane
visible_rows