以下是我的代码片段。我有一个JTable。我已经扩展了DefaultCellEditor来创建我自己的编辑器。我为单元格添加了关键的监听器和鼠标监听器。我也有一个JButton。当我点击JButton时,我希望JTable中的第一个单元格进入编辑模式。为此我使用了requestFocus和editCellAt(0,0)。我已将此代码放入actionperformed。
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);
}
}
这会将光标放在第一个单元格中。但是,当我输入任何内容时,关键事件不会被触发!注意:如果我使用鼠标单击单元格然后键入,它会触发键事件。但我不想做额外点击。
答案 0 :(得分:6)
似乎适合我。也许您可以尝试以下方法:
table.editCellAt(0, 0);
table.getEditorComponent().requestFocus();