Tôi có một ứng dụng Java Swing trong IDE NetBeans.KeyTypedEvent Mã khóa KeyEvent luôn là 0?
tôi đã thực hiện một hình thức và gắn một KeyListener để điều khiển khác nhau của tôi như vậy:
jButton1.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent evt) {
keyTypedEvent(evt);
}
});
và keyTypedEvent
được định nghĩa như vậy:
private void keyTypedEvent(java.awt.event.KeyEvent evt)
{
System.out.println(evt);
appendDisplay(String.valueOf(evt.getKeyChar()));
}
Tôi đã thêm một println
đến evt
để xem những gì xảy ra và để xác minh rằng trình khóa của tôi không hoạt động. Khi tôi xây dựng và chạy ứng dụng của tôi, tôi nhận ra rằng sản lượng luôn dường như có một keycode = 0
Để xác minh điều này, tôi đã thay đổi println tôi để được evt.getKeyCode()
và nó luôn luôn trở về 0.
tôi có thể hoàn toàn hiểu sai những gì keyCode không, nhưng tôi nghĩ rằng nó sẽ coorespond với các giá trị trong tài liệu hướng dẫn của Oracle ở đây:
http://docs.oracle.com/javase/7/docs/api/constant-values.html#java.awt.event.KeyEvent.VK_ESCAPE
Ví dụ, VK_ESCAPE có giá trị 27.
Không sử dụng KeyListener. Sử dụng các liên kết DocumentListener hoặc Swing Key. –