Goo*_*KSL 1 java user-interface swing jtable tablemodel
我遇到了以下问题:我有一个JTable,它的on tablemodel坐在JFrame上.tablemodel使用自己的hashmap进行备份以存储内容.该表有两列,右侧可编辑.
通常,用户在右侧更改某个值,然后按下Enter按钮,该按钮将触发调用我的保存功能的tabledatachanged事件.然后可以关闭框架.
但是,有些用户只是简单地编辑单元格然后关闭窗口而不按Enter键,所以我没有机会保存表格.我知道如何在框架即将关闭时编写事件,但我不知道如何在完成编辑的同时检索"未完成"编辑的内容.
我想它与celleditors有关,我甚至尝试使用table.getCellEditor()来返回活动的但是它返回null.
谢谢您的帮助!
最简单的措施是配置表以在失去焦点时尽最大努力:
table.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);
Run Code Online (Sandbox Code Playgroud)
不幸的是,当其最大努力不够好时(例如当用户点击框架的关闭按钮时),存在上下文.在那些中,除了挂钩可能会松开编辑并手动强制编辑停止的每个通道之外别无他法
if (table.isEditing()) {
boolean stopped = table.getCellEditor().stopCellEditing();
if (!stopped) {
// here goes error handling and/or cancelling the edit
}
}
Run Code Online (Sandbox Code Playgroud)
根据您对问题的描述,
一些用户只是简单地编辑单元格,然后他们关闭窗口而不按Enter键
我微微一愣的第一是工作,本来期望你需要做的的WindowListener第二.
另见Rob的博客文章
| 归档时间: |
|
| 查看次数: |
521 次 |
| 最近记录: |