java之事件監聽(二)鍵盤監聽

package 第一版;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

import javax.management.monitor.MonitorMBean;
import javax.swing.*;
public class draw4 extends JFrame{
	myPanel mp = null;
	public static void main(String[] args) {
		draw4 d = new draw4(); 
		// TODO Auto-generated method stub

	}
	public draw4() {
		mp = new myPanel();
		// TODO Auto-generated constructor stub
		this.add(mp);
		this.addKeyListener(mp);// 對mp實行鍵盤監聽
		this.setSize(300, 300); // 設置框體大小
		this.setLocation(400,150); //設置框體顯示的位置
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 設置框體退出
		this.setVisible(true); // 顯示框體
	}

}

class myPanel extends Panel implements KeyListener{
	int x=10;
	int y=10;
	public void paint(Graphics g){//系統自動調用
		super.paint(g); 
		g.fillOval(x, y, 30, 30);
	}
	//鍵被按下
	@Override
	public void keyPressed(KeyEvent e) { //系統會自動調用
		// TODO Auto-generated method stub
		System.out.println("鍵被按下"+(char)e.getKeyCode());
		if(e.getKeyCode()==KeyEvent.VK_DOWN){
			y++;
		}
		if(e.getKeyCode()==KeyEvent.VK_UP){
			y--;
		}
		if(e.getKeyCode()==KeyEvent.VK_LEFT){
			x--;
		}
		if(e.getKeyCode()==KeyEvent.VK_RIGHT){
			x++;
		}
		this.repaint(); // 將圖重新畫
	}
	//鍵被釋放
	@Override
	public void keyReleased(KeyEvent e) {
		// TODO Auto-generated method stub
		System.out.println("鍵被釋放");
	}
	//鍵的值被輸出
	@Override
	public void keyTyped(KeyEvent e) {
		// TODO Auto-generated method stub
		System.out.println("輸出"+e);
	}	
}

發佈了161 篇原創文章 · 獲贊 21 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章