~~怎样设置jTable中的某一列不可编辑~~

时间:2021-04-10 19:29:31
用如下语句得到jTable1的第一列:
TableColumn a = jTable1.getColumnModel().getColumn(0);

但在TableColumn的方法中没有看到类似setEnable()或setEditable()的方法,
我想让a列不可编辑,请教怎样实现?

3 个解决方案

#1


不是这样的啊!!是设置 TableModel 增加一个方法,
下面设置第 3列不可编辑
public boolean isCellEditable(int rowindex,int colindex){
   if (colindex==2) return false; 
.....
   return true;
}

#2


你的 JTable 如何绑定数据的??
应该如下绑定数据:
  //下面假设你有的表格数据使用 String[][] 二维数组格式,表头使用一维数组  
  aTable.setTableModel(new DefaultTableModel(String[][]{{"12","12"},{"12","12"}},new String[]{"列1","列2"}){
     public boolean isCellEditable(int rowindex,int colindex){
        if (colindex==1) return false;   //设置第二列只读
        return true;                     //其他列可以修改
}
}); 
  //具体,你看看 DefaultTableModel 这个类吧;它还有其他一些构造函数的;如果那些构造函数还不够,你可以自己实现提供数据和表头的方法

#3


hesi726(hesi) ( ) 信誉:98 说得很对

#1


不是这样的啊!!是设置 TableModel 增加一个方法,
下面设置第 3列不可编辑
public boolean isCellEditable(int rowindex,int colindex){
   if (colindex==2) return false; 
.....
   return true;
}

#2


你的 JTable 如何绑定数据的??
应该如下绑定数据:
  //下面假设你有的表格数据使用 String[][] 二维数组格式,表头使用一维数组  
  aTable.setTableModel(new DefaultTableModel(String[][]{{"12","12"},{"12","12"}},new String[]{"列1","列2"}){
     public boolean isCellEditable(int rowindex,int colindex){
        if (colindex==1) return false;   //设置第二列只读
        return true;                     //其他列可以修改
}
}); 
  //具体,你看看 DefaultTableModel 这个类吧;它还有其他一些构造函数的;如果那些构造函数还不够,你可以自己实现提供数据和表头的方法

#3


hesi726(hesi) ( ) 信誉:98 说得很对