Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > jTable и навигация


Автор: aliks 23.3.2009, 15:34
По умолчанию, при нажатии клавиши Enter, в jTable происходит навигация по таблице, т.е. перемещение между ячейками. Как сделать, чтобы при нажатии Enter, ячейка переходила в режим редактирования.
А также при этом все содержимое данной ячейки стиралось бы.

Автор: aliks 24.3.2009, 09:54
Ну вопросы сам решил. Решение представлено ниже

Код

jTable1.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0),"check");
jTable1.getActionMap().put("check", new AbstractAction() {
    public void actionPerformed(ActionEvent e) {
        int row = jTable1.getSelectedRow();
        int col = jTable1.getSelectedColumn();

        if (jTable1.isEditing()) {
            jTable1.getCellEditor().stopCellEditing();
        }
        else {
            jTable1.editCellAt(row,col);
            ((JTextField)jTable1.getDefaultEditor(String.class).getTableCellEditorComponent(jTable1, jTable1.getValueAt(row, col), true, row, col)).grabFocus();
            ((JTextField)jTable1.getDefaultEditor(String.class).getTableCellEditorComponent(jTable1, jTable1.getValueAt(row, col), true, row, col)).selectAll();
        }
    }
});

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)