Я создал простую java swing приложение. Теперь в моем JPanel у меня есть JTextField и один JTable. Итак, я реализовал свой собственный фокус, если фокус находится на JTextFiled1, и я нажимаю ENTER, фокус автоматически изменяется на JTextFiled2 и т. Д. Последний элемент, получающий фокус, - JTable. Теперь я не хочу, что фокус находится на первом столбце, а на четвертом столбце, поэтому у меня есть этот код:Как можно сфокусироваться на JTable?
textDescrizione.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,0), "myTabAction");
textDescrizione.getActionMap().put("myTabAction", new AbstractAction("myTabAction") {
public void actionPerformed(ActionEvent e) {
tableConti.requestFocus();
tableConti.editCellAt(0,4);
}
});
этот код работает, у меня есть фокус на моем Fouth клетке, но если я пытаюсь чтобы нажать правую кнопку на моей клавиатуре, фокус не состоит из пяти столбцов, а в первом столбце. Как я могу это изменить?
Другой вопрос: я применил keyListener на моем JTable, поэтому, если я попытаюсь нажать F5, когда JTable имеет фокус, я вызываю метод. Кроме того, он работает, но фокус остается на ячейке.
Это код:
KeyListener
public class MyKeyListenerSalvataggio extends KeyAdapter{
public void keyReleased(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_F5){
salva();
}
}
};
tableConti.addKeyListener(new MyKeyListenerSalvataggio());
После того, что я нажмите F5, метод Сальва() закончить это положение:
Как вам может видеть, я не могу очистить значение таблицы и удалить фокус на ячейке.
для моей второй вопрос, ваш ответ хороший. Спасибо, но за первый вопрос? – bircastri
@bircastri Кстати, не используйте KeyListener для клавиши F5. Swing был разработан для использования с KeyBindings. Я не понимаю ваш «первый вопрос». Клавиша со стрелкой вправо будет перемещать курсор только в текстовом поле, это не изменит фокус на другой компонент. – camickr
Мой первый вопрос: когда я нажимаю кнопку «Ввод», и я нахожусь на последнем JTextField, мой jtable, получаю фокус, я написал свой код, чтобы сделать это. Я сосредоточен на четвертом столбце первой строки моего JTable. Теперь, если я хочу переместить фокус на третий столбец или пятый столбец, я использую правую кнопку мыши на клавиатуре или левой кнопке, верно? Поэтому фокус не перемещается на третий или пятый, но в первом столбце – bircastri