歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Java鍵盤事件監聽

Java鍵盤事件監聽

日期:2017/3/1 10:16:05   编辑:Linux編程

Java鍵盤事件監聽(一):

  1. package com.han;
  2. import java.awt.Container;
  3. import java.awt.event.KeyEvent;
  4. import java.awt.event.KeyListener;
  5. import javax.swing.JFrame;
  6. import javax.swing.JLabel;
  7. import javax.swing.JScrollPane;
  8. import javax.swing.JTextArea;
  9. import javax.swing.SpringLayout;
  10. /**
  11. * 鍵盤事件監聽(1)
  12. * @author HAN
  13. *
  14. */
  15. public class KeyEvent_1 extends JFrame {
  16. /**
  17. *
  18. */
  19. private static final long serialVersionUID = -6762512303624322086L;
  20. public KeyEvent_1() {
  21. // TODO Auto-generated constructor stub
  22. Container container = getContentPane();
  23. SpringLayout springLayout = new SpringLayout();
  24. container.setLayout(springLayout);
  25. JLabel remarqueLabel = new JLabel("remarque :");
  26. JTextArea textArea = new JTextArea(3, 30);
  27. JScrollPane scrollPane = new JScrollPane();
  28. scrollPane.setViewportView(textArea);
  29. container.add(remarqueLabel);
  30. springLayout.putConstraint(SpringLayout.WEST, remarqueLabel, 5,
  31. SpringLayout.WEST, container);
  32. springLayout.putConstraint(SpringLayout.NORTH, remarqueLabel, 5,
  33. SpringLayout.NORTH, container);
  34. container.add(scrollPane);
  35. springLayout.putConstraint(SpringLayout.WEST, scrollPane, 5,
  36. SpringLayout.EAST, remarqueLabel);
  37. springLayout.putConstraint(SpringLayout.NORTH, scrollPane, 5,
  38. SpringLayout.NORTH, container);
  39. springLayout.putConstraint(SpringLayout.EAST, scrollPane, -5,
  40. SpringLayout.EAST, container);
  41. springLayout.putConstraint(SpringLayout.SOUTH, scrollPane, -5,
  42. SpringLayout.SOUTH, container);
  43. textArea.addKeyListener(new KeyListener() {
  44. @Override
  45. public void keyTyped(KeyEvent e) {
  46. // TODO Auto-generated method stub
  47. System.out.println("The charactor you typed : " + "\""
  48. + e.getKeyChar() + "\"");
  49. }
  50. @Override
  51. public void keyPressed(KeyEvent e) {
  52. // TODO Auto-generated method stub
  53. // 寫大寫字母時,釋放按鍵是不知道是否先釋放的是shift還是字母按鍵;但是
  54. // 可以肯定的是按按鍵時必須是先按的shift。
  55. if (e.getKeyCode() == KeyEvent.VK_CONTROL ||
  56. e.getKeyCode() == KeyEvent.VK_SHIFT ||
  57. e.getKeyCode() == KeyEvent.VK_ALT) {
  58. System.out.println("\n" + "The Component triggered : " + e.getSource());
  59. }
  60. if (!(e.isControlDown() || e.isShiftDown() || e.isAltDown())) {
  61. System.out.println("\n" + "The Component triggered : " + e.getSource());
  62. }
  63. String keyText = KeyEvent.getKeyText(e.getKeyCode());
  64. if (e.isActionKey()) {
  65. System.out.print("The action key you pressed : " + "\""
  66. + keyText + "\"");
  67. } else {
  68. System.out.print("The non-action key you pressed : " + "\""
  69. + keyText + "\"");
  70. int keyCode = e.getKeyCode();
  71. switch (keyCode) {
  72. case KeyEvent.VK_CONTROL:
  73. System.out.print(", Control key is pressed");
  74. break;
  75. case KeyEvent.VK_SHIFT:
  76. System.out.print(", Shift key is pressed");
  77. break;
  78. case KeyEvent.VK_ALT:
  79. System.out.print(", Alt key is pressed");
  80. break;
  81. }
  82. }
  83. System.out.println();
  84. }
  85. @Override
  86. public void keyReleased(KeyEvent e) {
  87. // TODO Auto-generated method stub
  88. // the integer code for an actual key on the keyboard.
  89. // (For KEY_TYPED events, the keyCode is VK_UNDEFINED.)
  90. System.out.println("The key you released : " + "\"" +
  91. KeyEvent.getKeyText(e.getKeyCode()) + "\"");
  92. }
  93. });
  94. }
  95. /**
  96. * @param args
  97. */
  98. public static void main(String[] args) {
  99. // TODO Auto-generated method stub
  100. KeyEvent_1 frame = new KeyEvent_1();
  101. frame.setTitle("KeyEvent Test");
  102. frame.setVisible(true);
  103. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  104. frame.setBounds(0, 0, 600, 300);
  105. }
  106. }
Copyright © Linux教程網 All Rights Reserved