按内容自动垂直调整JTable大小

时间:2010-09-13 12:54:08

标签: java swing

你知道如何让JTable将自己调整到最大预定义高度,然后提供滚动条吗?

2 个答案:

答案 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);