JTable 失去焦点时取消编辑状态
来源:互联网 发布:克服恐惧知乎 编辑:程序博客网 时间:2024/05/29 18:24
reference:原文
当JTable的单元格处于编辑状态时,如果用户触发以下事件,表格就会退出编辑状态,进而调用TableModel的
public void setValueAt(Object aValue, int row, int column)
1. 回车确认
2. 使用方向键或tab移动到别的单元格
3. 鼠标点击别的单元格
但是,如果用户点击了表格之外的控件,表格中单元格还是处于编辑状态,此时如果点击的是“保存”按钮,由于单元格并没有接受用户的输入,导致当前编辑的单元格的值为null,用户输入的数据没有保存。
同时,由于表格中的所有单元格是共用一个CellEditor,当用户新建一行时,通常会让光标移动到新建的行的某一个单元格,此时原来正在编辑的单元格就会替换到新增加的行中,而之前单元格的输入的内容没有保存。
因此,在触发其他操作之前,最好能够取消表格正在编辑的状态。
方法1.
JTable table = new JTable(...);
table.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);
当其他控件获取焦点后,表格会停止编辑,但是点击最小化时没有效果。
方法2.
if (table.isEditing())
table.getCellEditor().stopCellEditing();
在需要取消表格编辑状态的按钮等控件的事件响应中根据具体情况来取消表格的编辑状态。
原文说点击表格的表头,使用第一种方法,表格不会退出编辑状态,但是经测试也是会退出编辑状态的。
- JTable 失去焦点时取消编辑状态
- JTable 失去焦点时取消编辑状态
- JTable 失去焦点时取消编辑状态
- 让编辑框失去焦点
- swing jtable 单元编辑事件(包括通过键盘获取焦点后编辑和鼠标双击后进入编辑状态)
- table单击进入编辑状态、失去焦点发送数据到后台
- 可编辑子项的CListCtrl类(失去焦点时,CEdit消息被屏蔽的问题)
- 失去焦点
- word 2007 失去焦点后鼠标无法编辑的解决方案
- word 2007 失去焦点后鼠标无法编辑的解决方案
- Ext grid单元格编辑不失去焦点点击保存
- 双击表格td进行编辑,失去焦点完成修改
- easyui可编辑行失去焦点后操作
- javaFX table表格可编辑失去焦点提交
- javascript 失去焦点(onblur)与获得焦点(onfocus),载入焦点(oInp.focus()),取消焦点(oInp.blur()),全选select()
- CListCtrl非激活状态,失去焦点依然高亮显示
- React无状态组件更新props时会失去焦点
- 获得焦点失去焦点
- c++ ofstream和ifstream详细用法
- poj.3041--二部图的最小定点覆盖
- 菜鸟应用-手机应用在线制作平台,手机应用,APP开发,手机软件开发
- [K/3Cloud]关于"选单"操作
- uniDBGrid实行多选表格行
- JTable 失去焦点时取消编辑状态
- 一本好的数学科普书
- 开发移动APP应用迎新生
- Mac下MySql卸载方法
- xcode 插件收集
- XSD(XML Schema Definition)用法实例介绍以及C#使用xsd文件验证XML格式
- chap1
- Freemarker+Struts2 国际化应用
- 泛型知识点