你知道如何让JTable将自己调整到最大预定义高度,然后提供滚动条吗?
答案 0 :(得分:2)
确定。我找到了一个方法。不是最干净但它有效。
如果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));
}
答案 1 :(得分:0)
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);