JTabel 中监听某个单元格的值确实改变了
来源:互联网 发布:网民网络应用2017 编辑:程序博客网 时间:2024/06/04 23:19
JTable得单元格(cell)在渲染得时候使用得是默认得DefaultTableCellRenderer。其返回的Component是继承了JLabel得组件,所以直接使用默认得渲染器对其内容的更改显得力不从心。其监听主要在他得CellEditor上面JTable使用的默认得编辑器为JTextField,这样你就可以重新添加编辑器即继承DefaultCellEditor然后给其添加一定得监听事件后在对jtable添加编辑器,单这样做我感觉过于过于繁琐。在单元格进行编辑的时候会触发TablechangEvent 事件,Tablechange事件提供了几种触发事件得类型主要分为:
1.insert
2.update
3.delete
如果要对其某个单元格得内容是否真得发生了更改得话只有选择update类型,但其监听得事件是在你双击进入编辑状态后不管有没有对数据进行更改都会触发此事件。如果我们能获得进入编辑状态前和编辑状态完成后得内容是很容易确定其内容是否真得进行过更改得。
首先对Jtable添加TableModelListener方法如下
JTable t = new JTable();
String oldvalue = null;//定义全局变量用于记录编辑前得内容
t.getModel().addTableModelListener(new TableModelListener(){
public void tableChanged(TableModelEvent e) {
if(e.getType() == TableModelEvent.UPDATE){
/*
* do some thing 获得编辑后单元格得值
*/
String newvalue = t.getValueAt(e.getLastRow(),e.getColumn()).toString();
if(!newvalue.equals(oldvalue)){
/*
* call the value changed metod;
*/
}
}
}
});
这样就可以对其是否进入过编辑状态有了监听,然后在给其添加mouselistener就可以对其进去编辑状态前得情况进行记录
t.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e){
//记录进入编辑状态前单元格得数据
oldvalue = t.getValueAt(t.getSelectedRow(),t.getSelectedColumn()).toString();
}
});
原文链接:http://blog.csdn.net/a276202460/article/details/3081361
- JTabel 中监听某个单元格的值确实改变了
- JTabel 中监听某个单元格的值确实改变了
- JTabel 中监听某个单元格的值确实改变了
- JTabel 单元格中加入日期选择器DatePicker
- android之listView中监听item中某个控件,改变另一个控件的值
- 监听某个控件的值改变(frame或者值)
- extjs4 中动态改变单元格的值
- 如何修改grid中某个单元格的值
- 改变某个单元格的背景 html table td bgcolor
- vb.net DataGridView 改变某个单元格字体的颜色
- 当excel表中的某个单元格的值小于某个值时,如何实现该单元格的底色或者内容改变颜色?
- extjs 改变某个值另一个单元格随之变化
- C#文本文件中改变文件某个位置的值
- 获取表格中某行某个单元格的值
- JTabel今天搞的我太郁闷了
- Gaia中监听setting的值的改变
- C#2005 如何dataGridView的单元格的值发生了改变
- WPF中datagrid控件如何获得某个单元格并改变其背景颜色
- css隐藏页面元素的方法
- java IO体系
- c++之内存管理
- 图解第一个Matlab仿真实例
- scala基础30-模式匹配进阶
- JTabel 中监听某个单元格的值确实改变了
- 迟到的七月份总结
- 在Eclipse中使用JUnit4进行单元测试(中级篇)
- R 对象的删除
- mysql 5.6.14主从复制(也称mysql AB复制)环境配置
- Linux命令常用之查看命令(more和cat)
- 淡出动画fadeOut
- vector内存机制和性能分析
- scala基础31-模式匹配之正则表达式