博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
上下左右移动小球
阅读量:4289 次
发布时间:2019-05-27

本文共 2400 字,大约阅读时间需要 8 分钟。

import java.awt.Color;import java.awt.event.*;import java.awt.event.KeyListener; //必须要有这句话,且没办法自动import好奇怪 //import com.sun.glass.events.KeyEvent;不可以是这句//import java.awt.event.*;  //必须要有这句话,且没办法自动import好奇怪 import java.awt.*; public class MyBall{	public static void main(String args[]){		Frame w=new Frame();		w.setSize(300,400);		w.setBackground(Color.black);		MyPanel mp=new MyPanel();		w.add(mp);	  //注册事件		w.addKeyListener(mp);		mp.addKeyListener(mp);			w.setVisible(true);	}}class MyPanel extends Panel implements KeyListener{//KeyListener鼠标右键"source-override implements methods	int x=30;	int y=30;	public void paint(Graphics g){		g.setColor(Color.WHITE);		g.fillOval(x, y, 20, 20);		}	@Override	public void keyPressed(KeyEvent arg0){		if(arg0.getKeyCode()==KeyEvent.VK_LEFT){		   x--;		}		if(arg0.getKeyCode()==KeyEvent.VK_UP){			y--;		}		if(arg0.getKeyCode()==KeyEvent.VK_RIGHT){		     x++;			}			if(arg0.getKeyCode()==KeyEvent.VK_DOWN){			 y++;				}					repaint();	}	@Override	public void keyReleased(KeyEvent arg0){		}	@Override	public void keyTyped(KeyEvent arg0){			}	  	//public void keyReleased(KeyEvent arg0){	//}	//public void keyTyped(KeyEvent argo){	//}	 }

另外一个正确代码

package com.event1;//通过上下左右键,来控制一个小球的位置 import java.awt.*;import javax.swing.*;import java.awt.event.*; public class CircleRun extends JFrame{ 	MyPanel mp=null;		public static void main(String[] args) {		CircleRun cr=new CircleRun();			}	public CircleRun(){		mp=new MyPanel();		this.add(mp);				this.addKeyListener(mp);				this.setSize(400,300);		this.setVisible(true);		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);			}	} //定义自己的面板class MyPanel extends JPanel implements KeyListener{	int x=10;	int y=10;		public void paint(Graphics g){		super.paint(g);		g.fillOval(x, y, 10, 10);	} 		//键的一个值被输出		@Override	public void keyTyped(KeyEvent e) {				} 	//键被按下	@Override	public void keyPressed(KeyEvent e) {		//System.out.println("键被按下"+e.getKeyCode());		if(e.getKeyCode()==KeyEvent.VK_DOWN){			//System.out.println("12");			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) {			}	}--------------------- 作者:hoho_12 来源:CSDN 原文:https://blog.csdn.net/hoho_12/article/details/52004939 版权声明:本文为博主原创文章,转载请附上博文链接!

 

你可能感兴趣的文章
视音频数据处理入门:AAC音频码流解析
查看>>
视音频数据处理入门:UDP-RTP协议解析
查看>>
视音频数据处理入门:FLV封装格式解析
查看>>
最简单的基于FFMPEG的封装格式转换器(无编解码)
查看>>
base64 编码原理
查看>>
单链表是否有环的问题
查看>>
判断两个链表是否相交并找出交点
查看>>
归并排序
查看>>
STL常见问题
查看>>
time_wait和close_wait状态
查看>>
STL中vector、list、deque和map的区别
查看>>
Linux下多线程查看工具(pstree、ps、pstack)
查看>>
PID PPID LWP NLWP
查看>>
查看线程CPU占用情况
查看>>
查看个线程的CPU 内存占用
查看>>
Fiddler 教程
查看>>
apache 设置用户注意事项
查看>>
svn中设置文件夹链接
查看>>
find ./ -name "*.cgi" |xargs -i cp "{}" ./cgi-bin/
查看>>
svn st | awk '{if ( $1 == "?") { print $2}}' | xargs svn add
查看>>