【发布时间】:2011-05-13 21:04:07
【问题描述】:
我在 JScrollPane 中放置了一个 JTable,但该表仅包含几行,这使得窗格中的其余空间为空。
有什么办法可以让 JTable 填满整个窗格?比如说,放置空行以便填充窗格。
谢谢
【问题讨论】:
我在 JScrollPane 中放置了一个 JTable,但该表仅包含几行,这使得窗格中的其余空间为空。
有什么办法可以让 JTable 填满整个窗格?比如说,放置空行以便填充窗格。
谢谢
【问题讨论】:
table.setFillsViewportHeight( true );
【讨论】:
JTable 方法setPreferredScrollableViewportSize() 是另一种管理屏幕空间的方法。有一个example here。
【讨论】:
我不确定这是否是最好的方法,但它应该可以正常工作:
int rows = jTable1.getRowCount();
int rowHeight = jTable1.getRowHeight();
int tableHeight = jTable1.getTableHeader().getHeight()+(rows*rowHeight);
System.out.println("JScrollpane: "+jScrollPane1.getViewport().getHeight());
while( tableHeight<jScrollPane1.getViewport().getHeight()){
System.out.println("JTable: "+tableHeight);
((DefaultTableModel) jTable1.getModel()).addRow(new Object[]{null,null,null,null});
tableHeight+=rowHeight;
}
显然,您需要将模型和插入的数据更改为您正在使用的任何内容。
【讨论】: