gpt4 book ai didi

java - TableCellEditor:按下按键清除原始文本;如果没有给出输入则保留值

转载 作者:行者123 更新时间:2023-11-30 07:19:14 25 4
gpt4 key购买 nike

我在 stackoverflow 中找到了一段代码,它允许表有一个自定义单元格编辑器作为 JTextField

我一直在阅读一些有关单元格编辑器的文章,并且了解每个抽象方法的一些行为。

class tableText extends AbstractCellEditor implements TableCellEditor {
JComponent component = new JTextField();

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

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

}

当我想编辑表格中的单元格但我想向其中添加一些代码但我不确定将它们放在哪里时,此代码允许我添加一个JTextField

我想添加的行为是这样的:

当单击单元格并出现 JTextField 时,如果用户按下数字键,它将用新值替换旧值。

如果单元格的值留空,则将保留原始值。

我知道如何制作这些代码,但我不知道将它们放在哪里。

有人可以指导我吗?

最佳答案

  1. If the user pressed a numeric key, it will replace the old value with a new one.

    如图here ,您应该使用带有 JTextFieldDefaultCellEditor 作为单元格编辑器。重写表格的 editCellAt() 方法并选择编辑器的文本,以便在用户键入时立即替换旧值。

    final Component editor = getEditorComponent();

    ((JTextComponent) editor).selectAll();

    如有必要,请添加 DocumentListener检查各个击键或 DocumentFilter强制输入数字。

  2. If the cell's value was left blank, the original value will be retained.

    Escape键取消编辑并恢复原始值。

image

关于java - TableCellEditor:按下按键清除原始文本;如果没有给出输入则保留值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37873718/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com