首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >未提交时JTable从单元格获取值

未提交时JTable从单元格获取值
EN

Stack Overflow用户
提问于 2018-07-19 03:58:57
回答 1查看 34关注 0票数 0

当单元格没有提交(单元格处于编辑模式)时,我想从单元格获取值-“实时”;这可能吗?

我试过了,但只有在我提交数据的情况下才能工作--按enter键

代码语言:javascript
复制
int row = jTable.getSelectedRow();
int col = jTable.getSelectedColumn();
String cellValue = jTable.getValueAt(row, col).toString();

我想在不退出的情况下获取按键单元格的值,在键入时实时获取此文本

代码语言:javascript
复制
KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(new KeyEventDispatcher() {
          @Override
          public boolean dispatchKeyEvent(KeyEvent e) {

              int row = jTable.getSelectedRow();
              int col = jTable.getSelectedColumn();


              if (e.getID() == KeyEvent.KEY_RELEASED) {
                  if (jTable.isEditing())
                      jTable.getCellEditor().stopCellEditing();
                  String cellValue = (jTable.getValueAt(row, col)!=null) ? jTable.getValueAt(row, col).toString() : "";
                  System.out.println(cellValue);
              }}

jTable.getCellEditor().stopCellEditing() -在键入时导致丑陋的输入/输出动画

@camickr很抱歉给您造成了混乱。您的解决方案是好的。我只需要添加jTable.editCellAt(row,col);就可以返回到编辑模式。

再次感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-19 04:01:41

单元格处于编辑模式

在将值保存到模型之前,必须停止编辑。

最简单的方法是使用:

代码语言:javascript
复制
JTable table = new JTable(...);
table.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);

当您创建表格时。

现在,当您单击按钮进行处理时,表将失去焦点,因此数据将被保存。

有关更多信息,请查看Table Stop Editing

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51410102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档