键盘控制小球移动

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_28631165/article/details/53056647
一个小java程序,用键盘的方向键控制小球移动
package com.ball;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class Ball {
	
	public static void main(String[] args) {
		JFrame myFrame= new JFrame("凯哥出版,翻版必究");
		myFrame.setSize(300,400);	
		
		MyPanel ma = new MyPanel();
		myFrame.add(ma);
		//鼠标注册事件
		myFrame.addKeyListener(ma);
		ma.addKeyListener(ma);
		
		//myFrame.setBackground(Color.red);   //****  1 ****
		
		myFrame.setLocation(500,100);   //界面出现的位置,相对于电脑窗口
		myFrame.setVisible(true);		//设置界面可见,不写就默认隐藏,
		myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  //点击关闭窗口可关闭,最右上角的叉
	}

}
class MyPanel extends JPanel implements KeyListener{
	int x = 100;    //小球的初始X位置
	int y= 100;		//小球的初始Y位置
	public void paint(Graphics g){
		
		g.setColor(Color.WHITE);	//背景颜色       //***  2 ******
		g.fillRect(0, 0, 300, 400);  //重画背景<span style="white-space:pre">		</span>//***** 2 *****
		
		g.setColor(Color.black);  //球的颜色
		g.fillOval(x, y, 60, 60);
		
		g.setColor(Color.blue);	
		g.drawString("点击键盘的方向键控制小球移动", 50, 50);
	}

	@Override
	public void keyPressed(KeyEvent arg0) {
		if(arg0.getKeyCode()==KeyEvent.VK_LEFT){  //方向向左的  通常用这个方法
			if(x>0){  		//控制小球不出左边的边界
				x=x-3; 		//按一次方向键移动3个像素
			}	
		}		
		if(arg0.getKeyCode()==KeyEvent.VK_UP){  //点击向上
			if(y>0){
				y=y-3;
			}
			
		}
		if(arg0.getKeyCode()==KeyEvent.VK_RIGHT){	//点击向右
			if(x<225){
				x=x+3;
			}
			
		}
		if(arg0.getKeyCode()==KeyEvent.VK_DOWN){	//点击向下
			if(y<300){
				y=y+3;
			}
			
		}				
		repaint();
	}

	@Override
	public void keyReleased(KeyEvent arg0) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void keyTyped(KeyEvent arg0) {  //键盘组合键方法
		// TODO Auto-generated method stub
		
	}
}


猜你喜欢

转载自blog.csdn.net/qq_28631165/article/details/53056647