键盘上下左右java_Java 代码,我想从键盘上实现监听,不知道哪里错了,按上下左右箭头实现重新绘图。...

展开全部

”仅有一个焦点组件能够接收KeyEvent。要使一个组件成32313133353236313431303231363533e4b893e5b19e31333332616464为焦点组件,需要将属性isFocusable设置为true。“

-----------------------------------------

Ps:小细节,上下弄反了。y轴向下递增。

-----------------------------------------------------

修改方法之一见注释package baidu;

import java.awt.event.*;

import java.awt.*;

import javax.swing.*;

public class MyGraphics3 extends JFrame{

public static void main(String[] args){

new MyGraphics3(100,100);

}

public MyGraphics3(int x,int y){

MGraphics3 mg = new MGraphics3(x, y);

mg.setFocusable(true);       //设置为焦点组件!!!

add(mg);

//add(new MGraphics3(x,y));

setVisible(true);

setLocation(500,350);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setSize(300,300);

}

}

class MGraphics3 extends JPanel{

private int x,y;

public MGraphics3(int x,int y){

this.x = x;

this.y = y;

addKeyListener(new Monitor3());

}

public void paint(Graphics g){

super.paint(g);

g.setColor(Color.BLUE);

g.fillOval(x,y,10,10);

}

public void move(int a,int b){

x += a;

y += b;

repaint();

}

class Monitor3 extends KeyAdapter{

public void keyPressed(KeyEvent e){

if(e.getKeyCode() == KeyEvent.VK_UP){

move(0,5);

}else if(e.getKeyCode() == KeyEvent.VK_DOWN){

move(0,-5);

}else if(e.getKeyCode() == KeyEvent.VK_RIGHT){

move(5,0);

}else if(e.getKeyCode() == KeyEvent.VK_LEFT){

move(-5,0);

}else{

System.out.println("ERROR!!!");

move(0,0);

}

}

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值