【JAVA语言程序设计基础篇】--事件驱动程序设计--键盘事件

java]  view plain  copy
 
  print ? 在CODE上查看代码片 派生到我的代码片
  1. package chapter16;  
  2.   
  3. import java.awt.Font;  
  4. import java.awt.Graphics;  
  5. import java.awt.event.KeyAdapter;  
  6. import java.awt.event.KeyEvent;  
  7.   
  8. import javax.swing.JFrame;  
  9. import javax.swing.JPanel;  
  10.   
  11.   
  12.   
  13. @SuppressWarnings("serial")  
  14. public class KeyEventDemo extends JFrame{  
  15.       
  16.     aa one  = new aa();  
  17.     public KeyEventDemo (){  
  18.         add(one);  
  19.         one.setFocusable(true);  
  20.     }  
  21.   
  22.     public static void main(String[] args) {  
  23.         KeyEventDemo frame = new KeyEventDemo();  
  24.         frame.setTitle("KeyEventDemo");  
  25.         frame.setLocationRelativeTo(null); // Center the frame  
  26.         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
  27.         frame.setSize(300300);  
  28.         frame.setVisible(true);  
  29.     }  
  30.     static class aa extends JPanel{  
  31.         private int x = 50;  
  32.         private int y = 50;  
  33.         private char keychar = 'A';  
  34.           
  35.         public aa(){  
  36.             addKeyListener(new KeyAdapter() {  
  37.                  public void keyPressed(KeyEvent e) {  
  38.                       switch (e.getKeyCode()) {  
  39.                         case KeyEvent.VK_DOWN: y += 10break;  
  40.                         case KeyEvent.VK_UP: y -= 10break;  
  41.                         case KeyEvent.VK_LEFT: x -= 10break;  
  42.                         case KeyEvent.VK_RIGHT: x += 10break;  
  43.                         default: keychar = e.getKeyChar();  
  44.                       }  
  45.                       repaint();  
  46.                  }  
  47.             });  
  48.         }  
  49.         protected void paintComponent(Graphics g){  
  50.             super.paintComponent(g);  
  51.               
  52.             g.setFont(new Font("TimesRoman",Font.PLAIN,24));  
  53.             g.drawString(String.valueOf(keychar), x, y);  
  54.               
  55.         }  
  56.     }  
  57. }  




点击键盘上的字母,输出在屏幕上,如果不是字母,不显示

另外 按方向键,可以控制字母的左右上下方向移动


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值