2010-09-13 52 views

回答

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)); 
    } 
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);