JTable怎样控制某一列、某一单元格允许或不允许被编辑
2016-08-01 00:15
155 查看
原文链接:http://blog.csdn.net/one_and_only4711/article/details/6594896
网上有很多关于怎样实现JTable不能被编辑的文章,因为如果不设置的话,双击单元格就会将单元格的内容读入一个默认的编辑器里,很多时候我们并不希望这样的事情发生,所以必须do something来阻止它。呵呵,好吧,我承认大家都知道下面这种方法可以实现让整个表格不不允许被编辑
[java] view
plain copy
DefaultTableModel newTableModel = new DefaultTableModel(dataVector,columnModelVector){
@Override
public boolean isCellEditable(int row,int column){
return false;
}
};
没什么神秘的,就是重写DefaultTableModel的方法isCellEditable方法,但更多的情况下,我们是需要指定表格中某一列或若干列允许被编辑,如商品列表中的数量,价格等等,这样又如何去实现呢?
其实仔细观察一下,这个isCellEditable方法会传两个参数进来,明眼人一看就知道,这分别是单元格的行和列索引,所以,根据这个row和column来控制返回true或false,我们的愿望就能实现了。下面是几个例子,要学会举一反三噢:
1、只允许表格的第三列被编辑
[java] view
plain copy
public boolean isCellEditable(int row,int column){
if(column == 3){
return true;
}else{
return false;
}
}
2、只允许表格的第二行、第二列的单元格被编辑
[java] view
plain copy
public boolean isCellEditable(int row,int column){
if(row == 2 && column == 2){
return true;
}else{
return false;
}
}
3、只允许表格的第4行和第6被编辑
[java] view
plain copy
public boolean isCellEditable(int row,int column){
if(row == 4 || row == 6){
return true;
}else{
return false;
}
}
网上有很多关于怎样实现JTable不能被编辑的文章,因为如果不设置的话,双击单元格就会将单元格的内容读入一个默认的编辑器里,很多时候我们并不希望这样的事情发生,所以必须do something来阻止它。呵呵,好吧,我承认大家都知道下面这种方法可以实现让整个表格不不允许被编辑
[java] view
plain copy
DefaultTableModel newTableModel = new DefaultTableModel(dataVector,columnModelVector){
@Override
public boolean isCellEditable(int row,int column){
return false;
}
};
没什么神秘的,就是重写DefaultTableModel的方法isCellEditable方法,但更多的情况下,我们是需要指定表格中某一列或若干列允许被编辑,如商品列表中的数量,价格等等,这样又如何去实现呢?
其实仔细观察一下,这个isCellEditable方法会传两个参数进来,明眼人一看就知道,这分别是单元格的行和列索引,所以,根据这个row和column来控制返回true或false,我们的愿望就能实现了。下面是几个例子,要学会举一反三噢:
1、只允许表格的第三列被编辑
[java] view
plain copy
public boolean isCellEditable(int row,int column){
if(column == 3){
return true;
}else{
return false;
}
}
2、只允许表格的第二行、第二列的单元格被编辑
[java] view
plain copy
public boolean isCellEditable(int row,int column){
if(row == 2 && column == 2){
return true;
}else{
return false;
}
}
3、只允许表格的第4行和第6被编辑
[java] view
plain copy
public boolean isCellEditable(int row,int column){
if(row == 4 || row == 6){
return true;
}else{
return false;
}
}
相关文章推荐
- JTable怎样控制某一列、某一单元格允许或不允许被编辑
- JTable怎样控制某一列、某一单元格允许或不允许被编辑
- 控制数据源中某一列是否允许编辑 FormDataObject allowEdit
- 怎样通过后台控制前台<input>可编辑或不可编辑
- swing中设置JTable的单元格不能被编辑、内容居中显示、隐藏JTable中的某一列
- EditorGridPanel中控制每一单元格是否可编辑
- swing设置JTable的单元格内容居中显示、不能被编辑,隐藏某一列
- 第5天:用IntegerEditor extends DefaultCellEditor来解决JTable的某一列数字控制
- 怎样用程序设置iis的[允许控制密码项]
- 怎样用程序设置iis的[允许控制密码项]
- swing的jtable中如何设置某一列不可编辑或者可编辑
- JTable 失去焦点时取消编辑状态
- [C++ ] MFC 中 另类的 控制编辑框 字符方法~!
- reposurgeon 2.8 发布,版本控制历史记录编辑
- 教你怎样用 Notepad++ 连接 FTP 进行文件编辑
- 怎样让DataGrid根据不同的用户权限判断是否显示:编辑列,删除列?
- [VB.NET]VB.NET2005中怎样实现子窗体控制父窗体的控件属性?
- webkit是怎样通过页面操作控制设备led指示灯的亮灭
- 快捷键和控制序列--bash的命令行编辑原理以及其它杂述
- js range控制光标_明天会怎样_新浪博客