java - 在 JTable 中编辑期间更改值

标签 java swing

JTable.setValueAt(Object obj, int row, int column);

在编辑 JTable 时不起作用。我找到了一种可以观察表格是否被编辑的方法。

if ("tableCellEditor".equals(evt.getPropertyName())) {
    if (table.isEditing()) {
        String value = table.getValueAt(table.getSelectedRow(), 2).toString();
        if(value.equals("0")){
            System.out.println(value);
            table.setValueAt("", table.getSelectedRow(), 2);
        }
   }
}

这给我输出值 0。但设置值什么都不做...基本上我想在这个单元格中编辑期间删除 0。

enter image description here

最佳答案

当您开始编辑单元格时,表格将从表格模型中获取数据并将其显示在编辑器中。因此更改表格模型不会影响编辑器。

您想要做的是获取编辑器并更改编辑器中的值。代码可能类似于:

JTextField editor = table.getEditorComponent();
editor.setText(...);

关于java - 在 JTable 中编辑期间更改值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47952181/

相关文章:

java - 实现基类方法的java方法可以返回继承类吗?

java - 使用 Unmarshal 访问 XML 文档的特定部分

java - 从并发修改异常中恢复

java - Action 监听器,执行 Gui

java - 使用Timer在固定时间内重绘然后继续计算

java - 无效数据访问ApiUsageException : detached entity passed to persist

java - 方法/构造函数声明的左括号后和右括号前的空格

Java Swing如何对自定义画作分层

java - JComboBox弹出动态人口

java - JFrame对事件是半透明/透明的,但仍然可见