gpt4 book ai didi

java - 在获得焦点时开始在 JTable 中的单元格中进行编辑

转载 作者:行者123 更新时间:2023-11-29 03:44:00 24 4
gpt4 key购买 nike

我已按以下方式为表格中的两列定义了单元格编辑器:

Java 代码:

JComboBox combo = new JComboBox();
//code to add items to the combo box goes here.

JTextField textField = new JTextField();
textField.setHorizontalAlignment(JTextField.RIGHT);

TableColumn column = myJTable.getColumnModel().getColumn(0);
column.setCellEditor(new DefaultCellEditor(combo));

column = myJTable.getColumnModel().getColumn(1);
column.setCellEditor(new DefaultCellEditor(textField));

我面临的问题是,当焦点移动到表格单元格时,该单元格不会自动变为可编辑状态。因此,当焦点移动到第 2 列(具有作为编辑器的文本字段)时,插入符号不会出现,除非单元格被双击或用户开始键入。与第 1 列(具有组合框作为编辑器)的情况类似,因为此处组合框不会出现,除非单击单元格。对于使用键盘操作的用户来说,这些行为是违反直觉和不受欢迎的。:(

请就如何解决这个问题提出建议。

提前致谢。

最佳答案

  1. example使用 JTextField 覆盖具有 DefaultCellEditorJTable 中的 editCellAt()

  2. 您可以将 Space 键绑定(bind)到为 JTable 定义的 startEditing 操作:

    table.getInputMap().put(
    KeyStroke.getKeyStroke(KeyEvent.VK_SPACE, 0), "startEditing");

关于java - 在获得焦点时开始在 JTable 中的单元格中进行编辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11838242/

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