如何让第一列不能移动,其它的列可以移动,但是不移到第一列前面该怎么做?各位老大,我没分了,无尝帮助初学者吧,谢谢

解决方案 »

  1.   

    一个不太完美的解决方法, 鼠标拖动的时候行为有点儿怪异:import java.awt.BorderLayout;import javax.swing.JFrame;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.table.DefaultTableColumnModel;
    import javax.swing.table.JTableHeader;
    import javax.swing.table.TableColumn;
    import javax.swing.table.TableColumnModel;public class T {
    public static void main(String[] args) {
    JTable t = new JTable(5, 5) {
    @Override
    protected JTableHeader createDefaultTableHeader() {
    return new JTableHeader(columnModel) {
    @Override
    public void setDraggedColumn(TableColumn aColumn) {
    if (aColumn == getColumnModel().getColumn(0)) {
    return;
    }
    super.setDraggedColumn(aColumn);
    }
    }; 
    }

        protected TableColumnModel createDefaultColumnModel() {
            return new DefaultTableColumnModel() {
             @Override
             public void moveColumn(int columnIndex, int newIndex) {
             if (columnIndex == 0 || newIndex == 0) {
             return;
             }
             super.moveColumn(columnIndex, newIndex);
             }
            };
        }
    };

    JFrame f = new JFrame();
    f.getContentPane().add(new JScrollPane(t), BorderLayout.CENTER);
    f.pack();
    f.setLocationRelativeTo(null);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setVisible(true);
    }
    }