`
郭广川
  • 浏览: 68793 次
  • 性别: Icon_minigender_1
  • 来自: 河北
社区版块
存档分类
最新评论

实现键盘监听器,键盘控制小球移动

阅读更多

      本次实例实现了一个小球的控制移动,键盘上的上下左右四个键控制小球移动的方向,这里只是一个小小的键盘监听器的雏形,希望会为以后的学习有些好的提示。

      程序运行时要用鼠标点击一下窗体,从而激活窗体,这样才能通过上下左右键来控制小球的移动

第一个类:

 

package keylistenermove;

import java.awt.BorderLayout;
import java.awt.Color;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class mainTest extends JFrame {
	private keyListenerTest klTest = new keyListenerTest();

	public void showUI() {
		this.setTitle("梅竹寒香");
		this.setSize(500, 500);
		this.setLocation(200, 200);
		this.setDefaultCloseOperation(3);
		// 窗口打开时默认最大化
		this.setExtendedState(JFrame.MAXIMIZED_BOTH);
		this.setResizable(true);
		this.setVisible(true);
		this.setLayout(new BorderLayout());
		this.getContentPane().add(klTest, BorderLayout.CENTER);
		// 启动上下左右方向键盘按键控制四个线程
		directionThread directionthread = new directionThread(klTest);
		directionthread.start();
	}

	public static void main(String args[]) {
		mainTest maintest = new mainTest();
		maintest.showUI();
	}

}

 

第二个类:

package keylistenermove;
import java.awt.Canvas;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

public class keyListenerTest extends Canvas implements
		java.awt.event.KeyListener {
	//小球的初始位置
	public static int x = 250, y = 250;
	//用来记录键盘按下时的键盘键所对应的ASCII码
	public static int i;
	//用来记录键盘松开时的键盘键所对应的ASCII码
	public static int j;

	public void keyTyped(KeyEvent e) {
	}
//得到每次按下的键盘键的ASCII码
	public void keyPressed(KeyEvent e) {
		i = e.getKeyCode();
	}

	public void keyReleased(KeyEvent e) {
		//得到每次松开的键盘键的ASCII码
		j = e.getKeyCode();
		//这个是用来上下左右四个方向线程的while中的if判断,如果没有下面的代码,当按一下键盘键的时候,就无法停止小球移动
		if (j == 37 || j == 38 || j == 39 || j == 40) {
			i = -1;
		}
		

	}

	public keyListenerTest() {
		this.addKeyListener(this);
	}
	public void paint(Graphics g) {
		//画出小球,
		g.fillOval(x - 10, y - 10, 20, 20);
	}
}

 

 

第三个类:

package keylistenermove;
public class directionThread extends Thread {
	private keyListenerTest klTest = new keyListenerTest();

	public directionThread(keyListenerTest klTest) {
		this.klTest = klTest;
	}

	public void run() {
		while (true) {
			try {
				Thread.sleep(5);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			//实现小球的移动
			if (keyListenerTest.i == 38) {
				keyListenerTest.y -= 1;
				klTest.repaint();

			}
			if (keyListenerTest.i == 39) {
				keyListenerTest.x += 1;
				klTest.repaint();

			}
			if (keyListenerTest.i == 37) {
				keyListenerTest.x -= 1;
				klTest.repaint();

			}
			if (keyListenerTest.i == 40) {
				keyListenerTest.y+= 1;
				klTest.repaint();

			}
		}
	}
}

 

 

 

1
1
分享到:
评论
1 楼 zhoujianboy 2016-02-16  
开源的键盘监听器,供参考:http://www.haonanji.cn/214.html。

相关推荐

    键盘控制小球

    // 添加键盘监听器 setFocusable(true); // 获取键盘焦点,确保键盘事件有效 } @Override public void keyPressed(KeyEvent e) { switch (e.getKeyCode()) { case KeyEvent.VK_UP: // 上箭头键 ballSpeedY ...

    flex游戏引擎(PushButton)--键盘控制组件-移动小球

    在本文中,我们将深入探讨如何使用Flex游戏引擎PushButton来创建一个简单的键盘控制组件,以实现小球的移动。Flex是一种强大的开源框架,用于构建富互联网应用程序(RIA),而PushButton是其内置的交互式组件之一。...

    J2ME实现小球碰壁镜面返回效果,并键控制方向。

    在本文中,我们将深入探讨如何使用Java 2 Micro Edition(J2ME)平台来实现一个具有小球碰壁镜面返回效果以及通过键盘控制小球方向的移动游戏。J2ME是Java的一种轻量级版本,特别适用于移动设备和嵌入式系统,如手机...

    Javascript实现的20个经常的小球特效

    20. **用户控制**:让用户通过键盘或触摸屏操作小球,实现游戏或其他交互式应用。 这些JavaScript实现的小球特效不仅可以提升用户体验,还可以帮助开发者掌握更多的JavaScript编程技巧,包括DOM操作、事件处理、...

    键盘方向键操作小球跑酷Unity3D源码

    例如,使用方向键控制小球移动,可能需要监听上、下、左、右箭头键的状态,然后调整小球的速度向量。 2. **角色控制器**: - 小球的运动控制通常会有一个自定义的角色控制器组件。这个组件包含对键盘输入的响应...

    java编写的移动的小球

    4. **线程**:为了让小球移动,需要一个独立的线程来更新其位置并重绘GUI。这通常通过继承`Thread` 类或实现`Runnable` 接口来完成,并调用`start()` 方法启动线程。 5. **同步机制**:在多线程环境中,必须确保...

    键盘操作小球跑酷Unity3D源码

    例如,通过监听`Input.GetAxis("Horizontal")`和`Input.GetAxis("Vertical")`,我们可以获取到用户在水平和垂直方向上的按键输入,然后用这些值来控制小球的移动。为了使小球响应键盘操作,我们需要编写脚本,将输入...

    JAVA小球源码

    例如,用户可能可以通过键盘控制小球的移动方向,或者点击小球让它改变颜色或者速度。这些功能的实现需要添加事件监听器,并在相应的事件触发时执行相应的操作。 对于导入到Eclipse的步骤,用户需要确保Eclipse已经...

    简易迷宫小球源码

    这种控制机制需要编写事件监听器,监听用户的输入并据此更新小球的位置。在编程中,这通常涉及到面向对象编程(OOP),创建一个`Ball`类来表示小球,包含其位置、速度等属性,并实现移动方法。 其次,迷宫的构建是...

    java窗体内的弹性小球

    此外,可能还需要添加用户交互功能,例如通过键盘或鼠标控制小球的运动方向或速度。 从提供的压缩包文件名"QiuTan"来看,这可能是项目的源代码或者结果执行文件。如果这是源代码,打开后可以查看具体的实现细节,如...

    PYTHON 游戏:小球的冒险之旅(pygame实现的可视化冒险游戏)

    玩家的挑战在于通过键盘控制小球,避开障碍物,到达终点。游戏的实现涉及到了Pygame的许多核心功能,包括事件处理、精灵和组的使用、关卡设计、碰撞检测、动画与音频播放等,是学习Python游戏开发的绝佳实例。

    键盘元素的控制小方块的移动效果

    "键盘元素的控制小方块的移动效果"这个话题涉及到的是如何利用JavaScript来实现一个功能,即通过键盘按键来控制页面上一个小方块的移动。这通常用于游戏、模拟器或者任何需要用户输入来驱动视觉元素的应用场景。 ...

    小球游戏java源代码

    游戏可能注册了键盘监听器以响应用户的输入,比如控制小球的移动。同时,可能会有定时器(Timer)来定期更新游戏状态,如小球的位置变化。 5. **动画原理**: 连续刷新屏幕以模拟运动是实现动画的常用方式。开发者...

    一个小球自由碰撞的项目源码

    此外,为了实现用户交互,比如控制小球的初始位置或速度,项目可能还包含输入处理部分,监听键盘事件并响应。这涉及到事件驱动编程的概念,常见的如事件循环(event loop)和事件监听器(event listener)。 总的来...

    js小球撞击游戏

    - **小球撞击游戏**:这类游戏通常包含一个或多个小球在限定区域内移动,并与边界或其他对象发生碰撞,玩家通过控制某些元素来改变小球的运动轨迹。 2. **游戏结构** - 游戏通常由以下几个部分组成:游戏主循环、...

    java小球游戏

    - **事件监听器**:使用`java.awt.event`包中的监听器接口,例如`MouseListener`和`KeyAdapter`,来响应用户的鼠标点击和键盘输入,控制小球的移动或游戏状态。 - **事件调度**:`java.awt.EventQueue`和`java.awt...

    一个flash三维弹动的小球源程序实例

    6. **事件监听**:为了让小球响应用户的交互,比如点击或键盘输入,开发者会使用事件监听器来捕捉这些动作,并相应地改变小球的状态。 【文件名称列表】:“01.fla” `.fla`文件是Flash的原始工程文件,包含了所有...

    HTML5 canvas小球走迷宫游戏代码.zip

    游戏的核心是通过键盘控制一个小球在迷宫中寻找出路。玩家可以使用键盘上的左、右和上箭头键来操纵小球移动。这个设计体现了HTML5对键盘事件的处理能力,通过监听这些事件,改变小球的位置,模拟其在迷宫中的移动。 ...

    java弹跳小球代码

    3. **事件处理**:为了响应用户的键盘输入或小球与边界的碰撞,需要设置监听器。例如,可以使用KeyListener来处理键盘事件,改变小球的速度。同时,通过计算小球位置和边界的位置来检测碰撞。 4. **定时器**:Java...

Global site tag (gtag.js) - Google Analytics