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);
}
}
java之事件監聽(二)鍵盤監聽
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.