package event;
import javax.swing.*;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class ballmove extends JFrame{//窗口
mypanel mp=null;
public static void main(String[] args) {
ballmove ballmove = new ballmove();
}
public ballmove(){
mp=new mypanel();
this.add(mp);//可以监听到面板发生的键盘事件
this.setSize(400,300);
this.addKeyListener(mp);//让窗口jframe对象也能监听键盘事件
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}
//面板,画出小球,监听键盘。感知按下建
class mypanel extends JPanel implements KeyListener {
int x=10;//
int y=10;//
@Override
public void paint(Graphics g) {
super.paint(g);
g.fillOval(x,y,20,20);//默认黑色
}
@Override
public void keyTyped(KeyEvent e) {//有字符输出,方法会触发
}
@Override
public void keyPressed(KeyEvent e) {//当某个建按下,该方法触发
//System.out.println((char)e.getKeyCode()+"被按下时...");
//根据用户按下的不同建,来处理小球的移动(上下左右建)
//在java中,会给每个键一个值
if(e.getKeyCode()==KeyEvent.VK_DOWN){
y++; //KeyEvent.VK_DOWN表示向下箭头
}else if (e.getKeyCode()==KeyEvent.VK_UP){
y--;
}else if (e.getKeyCode()==KeyEvent.VK_LEFT){
x--;
}else if (e.getKeyCode()==KeyEvent.VK_RIGHT){
x++;
}
this.repaint();//让画板重绘
}
@Override
public void keyReleased(KeyEvent e) {//当某个建释放(松开)方法触发
}
}
java小球移动键盘监听使用
最新推荐文章于 2023-06-02 07:00:00 发布