JTabel 中监听某个单元格的值确实改变了
来源:互联网 发布:淘宝可以信用卡套现吗 编辑:程序博客网 时间:2024/06/04 19:21
在使用Jtable得时候,当然是我自己在使用得时候,查了下API没有发现如何监听某个单元格得值是否被修改过了,如果那位仁兄知道怎么直接添加监听还望多多指教。
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();
}
});
- 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控件如何获得某个单元格并改变其背景颜色
- aspx页面javascript的几个trick
- 从争车位到搬椅子--CSDN的小游戏策划(二)
- Windows 常见系统进程介绍
- 中国足球官方,民间评论大全
- [Syteline]Syteline--动态存储过程的使用方法
- JTabel 中监听某个单元格的值确实改变了
- Ie和firefox的Js区别
- [Syteline]动态参数的存储过程
- 简要分析POST与GET方法的区别
- ASP.NET常用代码
- 大爱无声
- C++ 对象的内存布局(下)
- 输入到文档里
- 数据挖掘在企业中应用的四种途径