У меня есть Java-код, и я получил свою программу, но я хотел добавить некоторые ключевые ярлыки. По какой-то причине я не могу заставить это работать. Он имеет тот же код, что и кнопка в программе, и когда я нажимаю кнопку, она работает, но когда я пытаюсь нажать клавишу ввода, она не работает. Какие-либо предложения?
public void keyTyped(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_ENTER){
try{
al.add(Integer.parseInt(txtGrade.getText()));
txtGrade.setText("");
txtGrade.requestFocus();
numOfGrades++;
lblGRecord.setText(numOfGrades + " Grades Recorded");
}
catch(Exception ex){
JOptionPane.showMessageDialog(this, "Please enter a number");
txtGrade.selectAll();
txtGrade.requestFocus();
}
}
}
Похоже, вы пытаетесь добавить KeyListener в JTextField и пытаетесь захватить нажатие клавиши Enter. Если этого не произойдет. Вместо этого просто дайте JTextField ActionListener, который будет делать то же самое, но на самом деле будет работать.
например,
txtGrade.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
try{
al.add(Integer.parseInt(txtGrade.getText()));
txtGrade.setText("");
numOfGrades++;
lblGRecord.setText(numOfGrades + " Grades Recorded");
} catch(Exception ex){
JOptionPane.showMessageDialog(this, "Please enter a number");
txtGrade.selectAll();
}
txtGrade.requestFocusInWindow();
}
});