2013-04-24 32 views
0

我正在使用以下代码编辑/取消编辑我的JTable列,但是当用户重新排列列时,以下代码不起作用 SSCCE of the代码如下:JTable编辑/ UnEdit代码不适用于重新安排的JTable列

import javax.swing.JTable; 
    import javax.swing.table.DefaultTableModel; 
    import javax.swing.table.TableModel; 

    public class Main { 
    public static void main(String[] argv) throws Exception { 
    TableModel model = new DefaultTableModel() { 
    public boolean isCellEditable(int rowIndex, int mColIndex) { 
    boolean flag = false; 
      if (isEdit == true) {  
       if ((vColIndex == tblItem.getColumn("Design").getModelIndex()) 
         || (vColIndex == tblItem.getColumn("ChangedCategory").getModelIndex()) 
         || (vColIndex == tblItem.getColumn("Amount").getModelIndex())) { 
        flag = false; 
       } else { 
        flag = true; 
       } 
      } else { 
       flag = false; 
      }  
      return flag; 
    } 
}; 

JTable table2 = new JTable(model); 
} 
} 
+0

更快速地发布[SSCCE](http://sscce.org/),简短,可运行,可编译,硬编码值为'JTable/XxxTableModel',存储为本地变量。 – mKorbel 2013-04-24 07:44:14

+0

@mKorbel我编辑过张贴SSCCE。 – 2013-04-24 08:00:16

+0

'我应用了你的解决方案,但它不工作',在几乎没有工作的情况下,免责声明被描述在我的第二。回答(我已删除)现在我们从结束返回到开始,请问SSCCE的原因,我不在这个线程 – mKorbel 2013-04-24 11:21:18

回答

2

注意模型和视图索引是等价。如前所述here

JTable提供从模型坐标转换为视图坐标的方法 - convertColumnIndexToViewconvertRowIndexToView - 以及从视图坐标转换到模型坐标 - convertColumnIndexToModelconvertRowIndexToModel

教程部分讨论了Sorting and Filtering行,但该原则也适用于列。缺席complete example,很难确定。

+0

但在我的情况下,我不得不使用 vColIndex == table.convertColumnIndexToView(tblItem.getColumn(“Design”)。getModelIndex()) – 2013-04-24 12:25:07

+0

非常感谢它为我工作。 – 2013-04-24 12:32:21

+0

很高兴你把它分类。 – trashgod 2013-04-24 15:14:42