Java 聚焦下一个cellEditor,并在按enter键时在JTable中选择其中的所有文本

Java 聚焦下一个cellEditor,并在按enter键时在JTable中选择其中的所有文本,java,swing,jtable,key-bindings,enter,Java,Swing,Jtable,Key Bindings,Enter,我希望enter键的作用类似于JTable上的tab键。 我知道这个问题已经被问过几次了,我使用了在这个页面中找到的解决方案: 这个解决方案很有魅力。但在使用tab键时,我已经覆盖了JTable的changeSelection,并覆盖了cell editor的GetTableCellEditor组件,以选择下一个单元格中textField中的所有文本: 在JTable中 @Override public void changeSelection(int row, int column

我希望enter键的作用类似于JTable上的tab键。 我知道这个问题已经被问过几次了,我使用了在这个页面中找到的解决方案:

这个解决方案很有魅力。但在使用tab键时,我已经覆盖了JTable的changeSelection,并覆盖了cell editor的GetTableCellEditor组件,以选择下一个单元格中textField中的所有文本:

在JTable中

   @Override
   public void changeSelection(int row, int column, boolean toggle, boolean extend) {
       super.changeSelection(row, column, toggle, extend);

       if (editCellAt(row, column)) {
           Component editor = getEditorComponent();
           editor.requestFocusInWindow();
       }
   }
手机编辑

    @Override
    public Component getTableCellEditorComponent(JTable table,
            Object value, boolean isSelected, int row, int column) {

           if (isSelected ) {
                SwingUtilities.invokeLater(new Runnable() {

                 @Override
                 public void run() {
                     textField.selectAll();
                 }
                });
          }
          return super.getTableCellEditorComponent(
                table, value, isSelected, row, column);
    }
因此,当我按tab键时,下一个单元格将聚焦,其中的文本将被选中,但当我第一次键入enter键时,单元格将失去焦点,第二次键入enter键时,下一个单元格将获得焦点,其中的文本将被选中


所以我的问题是:有没有一种方法可以让第一个从单元格中输入松散的焦点,并为下一个单元格获得焦点(这样它的行为将与tab键完全相同)

不知道这是否会产生影响,但我刚刚覆盖了changeSelection(…)方法来进行单元格选择:

if (editCellAt(row, column))
{
    Component editor = getEditorComponent();
    editor.requestFocusInWindow();
    ((JTextComponent)editor).selectAll();
}
如果没有帮助,请发布一篇演示问题的文章

if (editCellAt(row, column))
{
    Component editor = getEditorComponent();
    editor.requestFocusInWindow();
    ((JTextComponent)editor).selectAll();
}