//关闭自动模式
    table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);    //改变宽度
    int vColIndex = 0;
    TableColumn col = table.getColumnModel().getColumn(vColIndex);
    int width = 100;
    col.setPreferredWidth(width);

解决方案 »

  1.   

    看错了,不好意思  public class MyTableColumnModelListener implements TableColumnModelListener {
            JTable table;        public MyTableColumnModelListener(JTable table) {
                this.table = table;
            }
        
            public void columnAdded(TableColumnModelEvent e) {
            }
        
            public void columnRemoved(TableColumnModelEvent e) {
            }
        
            public void columnMoved(TableColumnModelEvent e) {
            }
        
            public void columnMarginChanged(ChangeEvent e) {
            //加这里
            }
        
            public void columnSelectionChanged(ListSelectionEvent e) {
            }
        }
      

  2.   

    我写的一个简单的小例子————————————————————————————————————————
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.table.*;public class Frame1 extends JFrame {
      JPanel contentPane;
      BorderLayout borderLayout1 = new BorderLayout();
      JScrollPane jScrollPane1 = new JScrollPane();
      JScrollPane jScrollPane2 = new JScrollPane();
      Object[][] tabledata = {{"1","2","3"},
                              {"1","2","3"}
                             };
      Object[] headdata = {"a","b","c"};
      DefaultTableModel model1 = new DefaultTableModel();
      DefaultTableModel model2 = new DefaultTableModel();
      JTable jTable1 = new JTable(model1);
      JTable jTable2 = new JTable(model2);  /**Construct the frame*/
      public Frame1() {
        enableEvents(AWTEvent.WINDOW_EVENT_MASK);
        try {
          jbInit();
        }
        catch(Exception e) {
          e.printStackTrace();
        }
      }
      /**Component initialization*/
      private void jbInit() throws Exception  {
        //setIconImage(Toolkit.getDefaultToolkit().createImage(Frame1.class.getResource("[Your Icon]")));
        contentPane = (JPanel) this.getContentPane();
        contentPane.setLayout(borderLayout1);
        this.setSize(new Dimension(400, 300));
        this.setTitle("Frame Title");
        jScrollPane1.setPreferredSize(new Dimension(4, 150));
        contentPane.add(jScrollPane1, BorderLayout.NORTH);
        jScrollPane1.getViewport().add(jTable1, null);
        contentPane.add(jScrollPane2, BorderLayout.CENTER);
        jScrollPane2.getViewport().add(jTable2, null);
        model1.setDataVector(tabledata,headdata);
        model2.setDataVector(tabledata,headdata);
        JTableHeader head1=jTable1.getTableHeader();
        head1.addMouseMotionListener(new java.awt.event.MouseMotionAdapter(){
         public void mouseDragged(MouseEvent e) {
            head_dragger();
          }
        });
      }
      /**Overridden so we can exit when window is closed*/
      protected void processWindowEvent(WindowEvent e) {
        super.processWindowEvent(e);
        if (e.getID() == WindowEvent.WINDOW_CLOSING) {
          System.exit(0);
        }
      }
      public void head_dragger(){
       TableColumn tablecolumn ;
       for(int i=0;i<jTable1.getColumnModel().getColumnCount();i++){
         tablecolumn = jTable2.getColumnModel().getColumn(i);
         int W = jTable1.getColumnModel().getColumn(i).getWidth();
         tablecolumn.setWidth(W);
         tablecolumn.setPreferredWidth(W);
       }
      }
    }