想请教一下键盘监听的问题

Duke__ 2013-11-01 09:58:54
想请教一下键盘监听的问题
比如.我想根据键盘的上下左右方向键来更改我的x,y值..
int x = 10;
int y = 10;
按向左 .x轴减1.向右加1 ..按上下就处理y
恳请大侠们给我思路或简单代码来引导一下.感激不尽
...全文
222 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
真的假的,我擦
Duke__ 2013-11-02
  • 打赏
  • 举报
回复
引用 6 楼 heywakeup 的回复:
package KeyBordLisener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import javax.swing.JFrame; public class KeybordLisener_demo extends JFrame { /** * @param args */ int x=10; int y=10; keyevent ke=null; public static void main(String[] args) { // TODO Auto-generated method stub KeybordLisener_demo ny=new KeybordLisener_demo(); } public KeybordLisener_demo() { this.setSize(200, 400); this.setVisible(true); ke=new keyevent(); this.addKeyListener(ke); } class keyevent implements KeyListener{ @Override public void keyTyped(KeyEvent e) { // TODO Auto-generated method stub } @Override public void keyPressed(KeyEvent e) { if(e.getKeyCode()==KeyEvent.VK_LEFT){ x--; System.out.println(x); System.out.println(y); } else if(e.getKeyCode()==KeyEvent.VK_RIGHT) {y--; System.out.println(x); System.out.println(y); } //System.out.println(e.getKeyChar()); } @Override public void keyReleased(KeyEvent e) { // TODO Auto-generated method stub } } }
谢谢您
Duke__ 2013-11-02
  • 打赏
  • 举报
回复
f.addKeyListener( new KeyAdapter(){ public void keyPressed(KeyEvent e){ if(e.getKeyCode() == 37){ x = 100; System.out.println(x); } } } ); 自己找到了.应是这个就可以改变X的值 谢谢楼上.不好意思刚刚看到.
aaaabbbccd9876 2013-11-02
  • 打赏
  • 举报
回复
楼上的帮你实现了
xiaolong806124 2013-11-02
  • 打赏
  • 举报
回复
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

import javax.swing.JFrame;
import javax.swing.JLabel;

public class FrameTest
{
	JFrame mainFrame = new JFrame("KeyListener");
	JLabel label = new JLabel();
	int x = 10;
	int y = 10;

	public FrameTest()
	{
		mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		mainFrame.setSize(400, 400);

		label.setText(getStr(x, y));
		mainFrame.add(label);
		mainFrame.setVisible(true);
		mainFrame.addKeyListener(new keylist());
	}

	//在标签上显示x,y的格式;
	public String getStr(int x, int y)
	{
		String s = "x = " + x + ", y = " + y;
		return s;
	}

	public static void main(String[] args)
	{
		new FrameTest();
	}

	//实现按键监听;
	private class keylist extends KeyAdapter
	{

		public void keyPressed(KeyEvent e)
		{
			int key = e.getKeyCode();
			switch (key)
			{
			// JDK对四个方向的常量定义;
			// public static final int VK_LEFT = 0x25;
			// public static final int VK_UP = 0x26;
			// public static final int VK_RIGHT = 0x27;
			// public static final int VK_DOWN = 0x28;
			case 37:
				x--;
				break;// VK_LEFT
			case 39:
				x++;
				break;
			case 38:
				y++;
				break;
			case 40:
				y--;
				break;
			}
			label.setText(getStr(x, y));
			mainFrame.add(label);
			mainFrame.setVisible(true);
		}

	}
}
Hrz-Alsace 2013-11-01
  • 打赏
  • 举报
回复
package KeyBordLisener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import javax.swing.JFrame; public class KeybordLisener_demo extends JFrame { /** * @param args */ int x=10; int y=10; keyevent ke=null; public static void main(String[] args) { // TODO Auto-generated method stub KeybordLisener_demo ny=new KeybordLisener_demo(); } public KeybordLisener_demo() { this.setSize(200, 400); this.setVisible(true); ke=new keyevent(); this.addKeyListener(ke); } class keyevent implements KeyListener{ @Override public void keyTyped(KeyEvent e) { // TODO Auto-generated method stub } @Override public void keyPressed(KeyEvent e) { if(e.getKeyCode()==KeyEvent.VK_LEFT){ x--; System.out.println(x); System.out.println(y); } else if(e.getKeyCode()==KeyEvent.VK_RIGHT) {y--; System.out.println(x); System.out.println(y); } //System.out.println(e.getKeyChar()); } @Override public void keyReleased(KeyEvent e) { // TODO Auto-generated method stub } } }
Duke__ 2013-11-01
  • 打赏
  • 举报
回复
引用 2 楼 aaaabbbccd9876 的回复:
有键盘事件啊
请问具体怎么实现呢
Duke__ 2013-11-01
  • 打赏
  • 举报
回复
引用 1 楼 zhuweisyyc 的回复:
监听键盘事件
请问怎么实现呢
Duke__ 2013-11-01
  • 打赏
  • 举报
回复
请问具体怎么实现呢.哈哈.我是新手
aaaabbbccd9876 2013-11-01
  • 打赏
  • 举报
回复
有键盘事件啊
zhuweisyyc 2013-11-01
  • 打赏
  • 举报
回复
监听键盘事件

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧