2
你知道有什麼方法讓一個JTable調整自己達到最大預定義高度,然後提供滾動條嗎?通過內容自動垂直調整JTable的大小
你知道有什麼方法讓一個JTable調整自己達到最大預定義高度,然後提供滾動條嗎?通過內容自動垂直調整JTable的大小
好的。我找到了一個方法。不是最乾淨的,但它的工作原理。
如果JTable的大小是由另一個容器決定的(在我的情況下它是一個JPanel),這個想法是根據JTable.getRowCount()計算面板高度。
因此它設置像這樣的一個簡單的例子:
if (table.getRowCount() > 0 && table.getRowCount()<5){
lineJPanel.setMaximumSize(new Dimension(32500, 70+table.getRowCount()*table.getRowHeight()));
}else{
lineJPanel.setMaximumSize(new Dimension(32500, 200));
}
String[] names = {"COL1","COL2","COL3"};
Object[][] data;
DefaultTableModel dtm= new DefaultTableModel(data, names);
JTable table = new JTable(dtm)
{
public boolean isCellEditable(int rowIndex, int colIndex)
{
return false;
}
};
然後...
JScrollPane scrollPane = new JScrollPane(table);
scrollPane.setPreferredSize(new Dimension(700, 500)); //your table not move more
panel1.add(scrollPane, BorderLayout.CENTER);