我在JScrollPane中放置了一个JTable,但该表只包含多行,这使得窗格中剩余的空间只是空的。如何用空的JTable行填充JScrollPane的高度?
有没有什么办法可以让JTable填满整个窗格?比方说,放空行,以便窗格将被填充。
感谢
我在JScrollPane中放置了一个JTable,但该表只包含多行,这使得窗格中剩余的空间只是空的。如何用空的JTable行填充JScrollPane的高度?
有没有什么办法可以让JTable填满整个窗格?比方说,放空行,以便窗格将被填充。
感谢
table.setFillsViewportHeight(true);
我不知道这是否是最好的方式,但它应该很好地工作:
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;
}
很显然,你需要改变模型和数据插入到任何你正在使用。
的JTable
方法setPreferredScrollableViewportSize()
是另一种方式来管理屏幕房地产。有一个example here。
据我所知,这将只填充表背景颜色的视口,而不是空行 - 猜猜这取决于需要什么。就我个人而言,我认为我更喜欢这个样子。 – 2011-05-16 15:43:27
是的,这就是想法。对我来说添加额外的行是没有意义的,因为那样你的模型就不准确了,因为它包含了不包含任何数据的填充行。 – camickr 2011-05-16 16:28:36