0

下面是我的代码片段。我有一个 JTable。我扩展了 DefaultCellEditor 以创建自己的编辑器。我为单元格添加了键侦听器和鼠标侦听器。我也有一个 JButton。当我单击 JButton 时,我希望 JTable 中的第一个单元格进入编辑模式。为此,我使用了 requestFocus 和 editCellAt(0,0)。我已将此代码放入执行的操作中。

public void actionPerformed(ActionEvent e)
{
     System.out.println("action performed");

     if(e.getSource().equals(btn))
     {
    oTable.requestFocus();
    oTable.setRowSelectionInterval(0, 0);
    oTable.editCellAt(0, 0);
     }
}

这会将光标放在第一个单元格中。但是当我输入任何内容时,不会触发关键事件!注意:如果我用鼠标单击单元格然后键入,它会触发键事件。但我不想做这个额外的点击。

4

1 回答 1

6

似乎对我有用。也许您可以尝试以下方法:

table.editCellAt(0, 0);
table.getEditorComponent().requestFocus();
于 2012-06-21T12:26:22.167 回答