Добрый день всем,
Узнав здесь, что консоль Java не очень поддерживает ввод с клавиатуры, я переключился на Swing и AWT. Теперь моя проблема заключается в том, как определить, когда используются клавиши направления клавиатуры (нецифровая клавиатура). Мой код (ниже) не делает больше, чем печатает символ «маленькое поле» при нажатии клавиш вниз, вверх, влево, вправо. Этот символ в виде квадратика ничем не отличается, например, от символа, используемого клавишами CTRL и ALT. Кто-нибудь знает, какова на самом деле идентичность клавиш направления клавиатуры, чтобы я мог кодировать их в своем приложении?
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class KeyChecker extends JFrame {
JLabel keyLabel = new JLabel("Hit any key");
public KeyChecker() {
super("Hit a Key");
setSize(300, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new FlowLayout(FlowLayout.CENTER));
KeyMonitor monitor = new KeyMonitor(this);
setFocusable(true);
addKeyListener(monitor);
add(keyLabel);
setVisible(true);
}
public static void main(String[] arguments) {
new KeyChecker();
}
}
class KeyMonitor extends KeyAdapter {
KeyChecker display;
KeyMonitor(KeyChecker display) {
this.display = display;
}
public void keyPressed(KeyEvent event) {
display.keyLabel.setText("" + event.getKeyChar());
display.repaint();
}
}