Java 聚焦下一个cellEditor,并在按enter键时在JTable中选择其中的所有文本
我希望enter键的作用类似于JTable上的tab键。 我知道这个问题已经被问过几次了,我使用了在这个页面中找到的解决方案: 这个解决方案很有魅力。但在使用tab键时,我已经覆盖了JTable的changeSelection,并覆盖了cell editor的GetTableCellEditor组件,以选择下一个单元格中textField中的所有文本: 在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
@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();
}