java - 不保留单元格的值

标签 java swing jtable

已发布 CellEditor。

import java.awt.Component;
import javax.swing.AbstractCellEditor;
import javax.swing.JComponent;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.TableCellEditor;

public class UserCellEditor extends AbstractCellEditor 
                            implements TableCellEditor {

    JComponent component = new JTextField();

    public Object getCellEditorValue() {
        return ((JTextField) component).getText();
    }

    public Component getTableCellEditorComponent(JTable table, 
            Object value, boolean isSelected, int row, int column) {
        ((JTextField) component).setText((String) value);
        return component;
    }
}

然后我这样调用表方法:

UserTable.getColumnModel().getColumn(0).setCellEditor(new UserCellEditor());

正在编辑单元格,但按 Enter 键或移动到另一个单元格的结果没有存储,它返回原始值。

我哪里错了或哪里做错了?

最佳答案

看起来您正在编辑本地 JTextField 中的值,而您的数据模型随后在编辑完成后返回未更改的值。您的编辑器需要按照本 example 中的建议更新您的模型.

关于java - 不保留单元格的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3565248/

相关文章:

java - 如何在java中的JTextField中插入印度卢比符号?

java - 从组合框中选择时,JTable 不刷新

java - 我的 jar 文件不会加载图像

java - 使用 Java 将 double 值转换为 BigInteger 值的最佳方法

java - 如何在没有第三库的情况下向 Recyclerview 添加快速滚动滚动条

java - CountDownTimer Java 等价物

java - 使用 java swing 对 JTabbedPane 中的选项卡进行着色

java - 如何在将新数据填充到表中之前删除 JTable 中的行?

java - 调用 setPreferredWidth 时,JTable 列不会调整大小

java - JSOUP编码获取网页标题