如何调整JTable的宽度????

解决方案 »

  1.   

    bookTableModel = new BookTableModel();
    bookTable = new JTable(bookTableModel);
    //调整table的列宽度
    int widths[] = {30, 150, 40, 30, 160};
    for(int i=0; i<bookTable.getColumnCount(); i++) {
    TableColumn tc = bookTable.getColumnModel().getColumn(i);
    tc.setMinWidth(widths[i]);
    tc.setPreferredWidth(widths[i]);
    }
      

  2.   

    一楼的,我想问的是如何改变整个JTable的宽度,因为建的表一直就是那么宽,无论放在那个容器里,容器不管怎么改变,表的宽度一直都不变,期待解决
      

  3.   

    protected  int autoResizeMode 
              确定表是否自动调整列的宽度以占用表的整个宽度,以及如何进行调整。 
      

  4.   

    用布局管理器,不知道是不是这个意思import javax.swing.*;
    import java.awt.*;public class Frame1 extends JFrame 
    {
      JScrollPane jScrollPane1 = new JScrollPane();
      JTable table1 = new JTable();
      GridBagLayout gridBagLayout1 = new GridBagLayout();
      Object[] tableheader =new Object[]{"column1","column1","column1","column1","column1"};
      javax.swing.table.DefaultTableModel  model = new javax.swing.table.DefaultTableModel();
      public Frame1() 
      {
        try 
        {
          jbInit();
          model.setColumnIdentifiers(tableheader);
          table1.setModel(model);
        }
        catch(Exception ex) {
          ex.printStackTrace();
        }
      }  void jbInit() throws Exception 
      {
        this.getContentPane().setLayout(gridBagLayout1);
        this.setLocale(java.util.Locale.getDefault());
        this.getContentPane().add(jScrollPane1,  new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0
                ,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(35, 57, 138, 79), -67, -264));
        jScrollPane1.getViewport().add(table1, null);
      }
      public static void main(String arg[])
      {
         Frame1 frame = new Frame1();
         frame.setSize(100,100);
         frame.show();
      }
    }