版权声明:本文为博主原创文章,未经博主允许不得转载。 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
}
}