Java 如何在jXTable中控制单元格编辑

Java 如何在jXTable中控制单元格编辑,java,swing,swingx,Java,Swing,Swingx,如何在JXTable中使某些单元格可编辑而其他单元格不可编辑? 我正在从数据库中检索要映射到表中的信息。 有些信息非常关键,我不希望用户篡改。不可编辑的单元格不显示任何映射信息 jXTable1 = new org.jdesktop.jXTable(){ Class[] types = new Class [] { java.lang.Object.class, java.lang.Object.class,java.lang.Object.class, java.la

如何在JXTable中使某些单元格可编辑而其他单元格不可编辑? 我正在从数据库中检索要映射到表中的信息。 有些信息非常关键,我不希望用户篡改。不可编辑的单元格不显示任何映射信息

jXTable1 = new org.jdesktop.jXTable(){

    Class[] types = new Class [] {
        java.lang.Object.class, java.lang.Object.class,java.lang.Object.class, java.lang.Object.class
    };
    boolean[] canEdit = new boolean [] {false, true, true, true};

    public Class getColumnClass(int columnIndex) {
        return types [columnIndex];
    }

    public boolean isCellEditable(int rowIndex, int columnIndex) {
        return canEdit [columnIndex];
    }
};
你可能会问我为什么不使用jTable而不是jXTable,但我急于使用swingx而不是通常的swing

下面的代码在使用jTable(javax.swing.jTable)时可以工作,但是当我在jXTable上实现它时,不可编辑的列不会显示信息

jXTable1 = new org.jdesktop.jXTable(){

    Class[] types = new Class [] {
        java.lang.Object.class, java.lang.Object.class,java.lang.Object.class, java.lang.Object.class
    };
    boolean[] canEdit = new boolean [] {false, true, true, true};

    public Class getColumnClass(int columnIndex) {
        return types [columnIndex];
    }

    public boolean isCellEditable(int rowIndex, int columnIndex) {
        return canEdit [columnIndex];
    }
};

AFAICT还调用了
TableModel
TableModel.isCellEditable
实现。在设置中检查这是否为可编辑单元格返回true。AFAICT
TableModel.isCellEditable
也会调用
TableModel
的实现。在设置中检查可编辑单元格是否返回true。