我在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