java基础学习之事件监听之键盘监听

/**
 * 通过上下左右控制小球的移动
 */
package com.test3;
import java.awt.*;

import javax.swing.*;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.security.Key;

import javax.swing.JFrame;
import javax.swing.JPanel;
/**
 * @author Administrator
 *
 */
public class demo1 extends JFrame{

	/**
	 * @param args
	 */
	MyPanel mp=null;
	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		demo1 d1=new demo1();

	}
	//构造
	public demo1()
	{
		mp=new MyPanel();
		//mp加入到 JFrame
		this.add(mp);
		this.addKeyListener(mp);
		this.setSize(400, 300);
		this.setVisible(true);
	}

}

//定义Panel
class MyPanel extends JPanel implements KeyListener
{
	int x=10,y=10;
	public void paint(Graphics g)
	{
		
		super.paint(g);
		g.fillOval(x,y,20,20);
		
	}

	@Override
	public void keyPressed(KeyEvent e) {
		// TODO 自动生成的方法存根
		//System.out.println("键被按下"+e.getKeyCode());
		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 arg0) {
		// TODO 自动生成的方法存根
		//System.out.println("键被松开");
		
	}

	@Override
	public void keyTyped(KeyEvent arg0) {
		// TODO 自动生成的方法存根
		//System.out.println("键被按下");
		
	}
}

你可能感兴趣的:(java)