java 鍵盤監聽
阿新 • • 發佈:2018-12-31
/** * 作者:@author ZhangShaoWen * 日期:2013-12-05 * 功能: */ package com.test; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Demo1_3 extends JFrame{ //定義變數 Mypanel2 mp = null; public static void main(String[] args) { new Demo1_3(); } //建構函式 public Demo1_3(){ mp = new Mypanel2(); this.add(mp); this.addKeyListener(mp);//註冊監聽 this.setSize(300,400); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } } class Mypanel2 extends JPanel implements KeyListener{ int x = 10; int y = 10; //重寫paint方法 public void paint(Graphics g){ //必須呼叫父類的構造方法 super.paint(g); g.setColor(Color.blue); g.fillOval(x, y, 10, 10); } //鍵的一個值被輸出 @Override public void keyTyped(KeyEvent e) { // TODO Auto-generated method stub } //按鍵的監聽器 @Override public void keyPressed(KeyEvent e) { // TODO Auto-generated method stub //System.out.println("鍵被按下"+e.getKeyChar()); if(e.getKeyCode()==KeyEvent.VK_DOWN){//點擊向下的鍵 y++; }else if(e.getKeyCode()==KeyEvent.VK_UP){//點擊向上的鍵 y--; }else if(e.getKeyCode()==KeyEvent.VK_LEFT){//點擊向左的鍵 x--; }else if(e.getKeyCode()==KeyEvent.VK_RIGHT){//點擊向右的鍵 x++; } //呼叫repaint方法實現重畫的功能 this.repaint(); } //釋放鍵的監聽器 @Override public void keyReleased(KeyEvent e) { // TODO Auto-generated method stub } }