`
百合不是茶
  • 浏览: 356101 次
社区版块
存档分类
最新评论

键盘监听器移动图片 -----简单实现移动

阅读更多

使用键盘监听器来控制图片的移动:

 



 

 

 

 1,创建一个窗体,  重写这个paint()方法来绘制图片和窗体,刷新

            preson.draw();  

  如果电脑配置不是很好就只要刷新JPanel就可以了,  不用刷新JFrame(JFrame比较消耗内存)

 

2,将图片看成是一个对象,新建一个图像类,    需要坐标和图片   ,

 

	 public  int x ,y;
	  ImageIcon icon;
	   public preson(int x, int y, ImageIcon icon) {
		super();
		this.x = x;
		this.y = y;
		this.icon = icon;
	}
	   //绘制图片
	   public void draw(Graphics g){
		   g.drawImage(icon.getImage(), x,y, null);
	   }
	   

 

 

3,添加监听器来控制图片的移动,键盘监听器KeyListener在实现监听器时,必须要重写方法

在控制图片移动的时,只需要键盘的按下键就可以

 

    public void keyTyped(KeyEvent e){}

    /**
     * Invoked when a key has been pressed.
     * See the class description for {@link KeyEvent} for a definition of
     * a key pressed event.
     */
//按下
    public void keyPressed(KeyEvent e){}

    /**
     * Invoked when a key has been released.
     * See the class description for {@link KeyEvent} for a definition of
     * a key released event.
     */
//释放
    public void keyReleased(KeyEvent e){}

 

 

键盘监听器控制的是图片,需要将图片通过构造方法传给监听器,才可以继续写移动的方法,

 

 

      int code= e.getKeyCode();可以得到按下键的一个数,通过这个数可以使用switch来控制移动的方向及每次移动的距离

 

移动的方向必须是KeyEvent.vk_需要移动的方向

移动的距离必须是图片类.x -=10     preson.x -=10;

 

          public void keyPressed(KeyEvent e){
      switch (code) {
	 case KeyEvent.VK_LEFT: //向左
		 preson.x -=10;
		break;
	 case KeyEvent.VK_RIGHT : //向右
		 preson.x +=10;
			break;
	 case KeyEvent.VK_UP : //向上
		 preson.y -=10;
			break;
	 case  KeyEvent.VK_DOWN : //向下
		 preson.y +=10;
			break;

	default:
		break;
	}
}

 

 

4,上述3个步骤可以移动图片,但是图片会不断的闪,这时需要开启线程来控制刷新

      通过构造方法将JPanel传给需要去启动线程的对象

     在run()方法中直接调用JPanelde repaint();方法   ,并且让线程休眠一定的时间再刷新  就解决了图片不断闪的问题

      

public class UpdateThread extends Thread {
	GameUI ui;
  public UpdateThread(GameUI ui){
	  this.ui = ui;
  }
	 
	public void  run(){
		while(true){
			
			ui.repaint();
			
		try {
			Thread.sleep(10);
		} catch (InterruptedException e) {
			e.printStackTrace();
			}
		}
	}
}

 

本人在实际编写中没有把图片当成是一个对象来处理,直接在主窗体中将ImageIcon icon = new ImageIcon("24.png");  中的icon作为监听对象  ,也可以实现,    但是在JAVA中要将所有的都看成是类或对象来处理 才能显示出JAVA的强大  

       

       

  本人接触游戏不久,游戏开发比较难,所以将自己理解的  通过这个平台写出来加深理解,  技术有限   如有更好的方式欢迎交流

 

      

 

 

  • 大小: 53.6 KB
  • 大小: 60.9 KB
1
0
分享到:
评论

相关推荐

    C# 根据键盘控制图片移动

    在C#编程中,我们可以利用Windows Forms或WPF框架创建图形用户界面,并通过处理键盘事件来实现图片的移动。这个项目的核心在于理解C#事件处理、控件交互以及图形渲染。接下来,我们将深入探讨这些关键知识点。 1. *...

    C#实现用键盘移动窗体上的图片

    本教程将详细解释如何使用C#实现一个功能,使用户能够通过键盘上的"W"、"A"、"S"、"D"键来上、下、左、右移动窗体上的图片。 首先,我们需要创建一个新的Windows Forms项目。在Visual Studio中,选择“文件”>...

    Qt全局鼠标、键盘事件监听器库

    【Qt全局鼠标、键盘事件监听器库】是一个用于在Windows和Linux系统上实现跨平台的全局鼠标和键盘事件捕获的库。这个库基于流行的Qt框架,为开发者提供了一个便捷的方式来监听并处理系统的输入事件,无论是来自应用...

    键盘事件控制图片移动

    通过以上步骤,我们可以实现标题所描述的功能——“键盘事件控制图片移动”。结合QSS加载图片和键盘事件监听,你可以创建出一个互动式的UI应用,用户可以通过键盘操作图片的移动。这在游戏开发、交互式展示等多种...

    android软键盘上移动焦点

    首先,焦点移动的关键在于监听和处理键盘事件。为了实现在软键盘上移动焦点,需要重写`onKeyDown(int keyCode, KeyEvent event)`方法。这个方法允许我们拦截并处理按键事件,其中`keyCode`参数对应于`KeyEvent`中的...

    鼠标及键盘监听实现

    "鼠标及键盘监听实现"这个项目正聚焦于这一关键功能,它允许开发者跟踪并响应用户的鼠标操作和键盘输入。下面将详细阐述相关知识点。 首先,我们要理解的是什么是鼠标监听。在计算机编程中,鼠标监听通常涉及到事件...

    坦克大战(java源码)

    - 为窗口添加键盘事件监听器,由`MyTank`实现。 - 启动新线程执行`MyTank`对象的`run()`方法。 #### 2. **游戏逻辑类MyTank** - **属性定义**: - 坦克初始坐标:`x, y`。 - 坦克移动方向:`op`。 - 坦克颜色...

    键盘控制图标移动

    在编程领域,键盘控制图标移动是一项常见的交互设计技术,它涉及到对键盘事件的监听和处理,以及图形用户界面(GUI)元素的动态移动。在这个场景中,我们可以从以下几个知识点进行详细探讨: 1. 键盘事件:键盘事件...

    Node.js-Node.js全局键盘和鼠标侦听器

    1. **全局键盘监听**:监听所有窗口的键盘事件,无论焦点在哪个应用上。例如,你可以创建一个热键启动应用的工具,或者记录用户输入的行为分析。 2. **全局鼠标监听**:捕获鼠标的点击、移动、滚动等事件,即使焦点...

    键盘控制窗体移动

    实现键盘控制窗体移动主要涉及到以下几个关键知识点: 1. **事件处理**:首先,我们需要监听键盘事件。这通常通过注册键盘事件处理器或监听器来完成。在Windows桌面应用程序中,例如C#的`Form`类或Java的`JFrame`类...

    qt键盘映射和焦点移动

    例如,我们可以创建一个全局事件过滤器来监听所有的键盘事件,实现统一的焦点移动逻辑。在事件过滤器的`eventFilter()`函数中,如果返回true,表示事件已被处理,不会继续传递;如果返回false,则事件会按常规流程...

    jquery 监听 键盘 事件

    在JavaScript的世界里,...总结,jQuery监听键盘事件是提升网页交互体验的重要手段,通过灵活运用`.on()`方法和事件处理函数,可以实现各种复杂的用户交互逻辑。了解并掌握这些技巧,将有助于提升你的前端开发能力。

    该组件用于ReactNative中获取Android原生层面的键盘响应事件

    组件可能提供了如`addEventListener`和`removeEventListener`等接口,用于添加和移除事件监听器。 此外,由于此组件名为`react-native-common-keyevent-master`,我们可以推测它可能是一个包含源码的项目仓库。在这...

    Cocos creator中一些控制人物的移动方式总结.zip

    开发者需要注册键盘事件监听器,并根据接收到的键值更新角色的位置。 ```javascript cc.Keyboard.on('keydown', function(event) { switch (event.keyCode) { case cc.KEY.up: // 角色向上移动 break; case cc...

    js桌面虚拟键盘插件A-Keyboard

    4. **绑定事件**:根据需要,可以绑定事件监听器来响应用户在虚拟键盘上的操作。 5. **自定义和扩展**:如果需要,可以使用插件提供的API进行更深入的定制。 通过以上步骤,开发者就能在网页上轻松集成并使用`A-...

    HTML5键盘监听简单小游戏

    键盘监听则是通过JavaScript的事件处理机制实现的。在HTML5中,可以使用addEventListener方法添加键盘事件监听器,例如监听keydown、keyup或keypress事件。当用户按下、释放或者按住键盘上的键时,对应的事件就会被...

    cocos2dx2.2.6 + VS2013 最简单的键盘控制

    本教程将深入讲解如何在Cocos2d-x 2.2.6与VS2013环境下实现最简单的键盘控制功能,让游戏角色能够通过上、下、左、右四个方向键进行移动。 首先,我们需要确保正确安装了Cocos2d-x 2.2.6和Visual Studio 2013,并...

    Wince下 DataGrid编辑并捕捉键盘上下左右移动

    通过监听特定的键盘事件,可以实现在DataGrid中对单元格内容的动态编辑,以及通过上下左右箭头键控制单元格焦点的移动。这对于提升用户体验,尤其是在手持设备或工业控制场景中,具有重要意义。此外,还需要注意错误...

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

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

    计算机编程入门:基于用户输入绘制并移动图形-可实现的-有问题请联系博主,博主会第一时间回复!!!

    项目涉及控制流、变量操作以及事件监听器的设计与实现,强调了程序对用户输入响应的能力及其重要性。通过具体步骤指导,学习如何创建窗口、处理键盘按键事件、设置条件语句以更新界面元素位置等。 适合人群:面向...

Global site tag (gtag.js) - Google Analytics