JAVA中按上下左右键怎么让面板里面的东西八个方向移动?

用键盘监听... 用键盘监听 展开
 我来答
百度网友b5880be
2010-06-07 · TA获得超过689个赞
知道小有建树答主
回答量:164
采纳率:0%
帮助的人:192万
展开全部
//重写JPanel
import java.awt.Graphics;

import javax.swing.JPanel;

public class MyPanel extends JPanel {

public static int x = 10;
public static int y = 10;

@Override
public void paint(Graphics g) {
g.drawRect(x, y, 30, 30);
}

}

//程序入口
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

import javax.swing.JFrame;

public class MyFrame extends JFrame{
private MyPanel mp;
public MyFrame() {
mp = new MyPanel();
this.add(mp);
this.setVisible(true);
this.setBounds(400, 200, 500, 500);
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e){
if(e.getKeyCode()==38){
MyPanel.y -= 10;
mp.repaint();
}else if(e.getKeyCode()==40){
MyPanel.y += 10;
mp.repaint();
}else if(e.getKeyCode()==37){
MyPanel.x -= 10;
mp.repaint();
}else if(e.getKeyCode()==39){
MyPanel.x += 10;
mp.repaint();
}
}
});
}

public static void main(String[] args) {
new MyFrame();
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zojo77
2010-06-07 · TA获得超过325个赞
知道答主
回答量:85
采纳率:0%
帮助的人:43.2万
展开全部
每个键都对应一个编码符event.keyCode,比如回车键是13,上下左右忘了,你查一下,然后在四个键的onkeypress()事件里面设置,当为上方向时,把面板的坐标上移。。。。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式