编写程序,实现使用键盘上的上下左右箭头控制界面上图片的移动。移动到边界时从界面另一侧出现。移动过程中显示另一个图片,停止时恢复原来的图片。

package text8;//MyFrame.java import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;class MyFrame extends JFrame implements KeyListener {private Icon icon, icon2;private JLabel lab;public MyFrame(String s) {super(s);setSize(700, 500);setLocationRelativeTo(null);JPanel contentPane = new JPanel(null);//contentPane.setLayout(); setContentPane(contentPane);icon = new ImageIcon("./image/happy.jpg");lab = new JLabel(icon);lab.setBounds(0, 0, 200, 200);addKeyListener(this);contentPane.add(lab);setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}@Overridepublic void keyTyped(KeyEvent e) {//TODO Auto-generated method stub }@Overridepublic void keyPressed(KeyEvent e) {//TODO Auto-generated method stub icon2 = new ImageIcon("./image/hello.jpg");lab.setIcon(icon2);}@Overridepublic void keyReleased(KeyEvent e) {lab.setIcon(icon);//TODO Auto-generated method stub int x = lab.getX();int y = lab.getY();if (x >= 700) {lab.setBounds(0, y, 200, 200);} else if (x < 0) {lab.setBounds(700, y, 200, 200);} else if (y < 0) {lab.setBounds(x, 500, 200, 200);} else if (y > 500) {lab.setBounds(x, 0, 200, 200);} else {if (e.getKeyCode() == KeyEvent.VK_LEFT) {lab.setBounds(x - 50, y, 200, 200);}if (e.getKeyCode() == KeyEvent.VK_RIGHT) {lab.setBounds(x + 50, y, 200, 200);}if (e.getKeyCode() == KeyEvent.VK_UP) {lab.setBounds(x, y - 50, 200, 200);}if (e.getKeyCode() == KeyEvent.VK_DOWN) {lab.setBounds(x, y + 50, 200, 200);}}}
}//MyFrameDemo.javapublic class MyFrameDemo {public static void main(String[] args) {MyFrame mf = new MyFrame("键盘事件演示");}
}

Java实验8 T5.使用键盘控制界面上图片的移动相关推荐

  1. OpenGL南邮计算机图形学实验报告四——用键盘控制物体

    OpenGL南邮计算机图形学实验报告四--用键盘控制物体 计算机图形学的新题目要求 OpenGL配置参考: 南邮老前辈wonz哥的OpenGL配置(Shader.h始终不用改).SOIL2 环境配置. ...

  2. 八、键盘控制无人机 · 上(launch文件解读)

    没想到又是这位博主,佩服佩服! 这里面的launch文件注释写的真的是非常详细! 转载自:https://blog.csdn.net/weixin_44917390/article/details/1 ...

  3. Java实验9 T5. 给当前的类文件添加行号拷贝到txt文件

    题目要求 编写一个Java应用程序,给当前的类所在的文件ReadExample.java添加行号拷贝到另一个文件temp.text Java代码 package text9;import java.i ...

  4. Java 实验5 T5

    题目 使用下面的方法头编写一个方法,找出某个指定字符在字符串中出现的次数: public static int count(String str,char a) 例如,count("Welc ...

  5. c#中跨线程调用windows窗体控件 .我们在做winform应用的时候,大部分情况下都会碰到使用多线程控制界面上控件信息的问题。然而我们并不能用传统方法来做这个问题,下面我将详细的介绍。...

    首先来看传统方法: public partial class Form1 : Form{public Form1() { InitializeComponent(); } private void F ...

  6. qt ui界面无法移动控件_使用qt 键盘上的方向键只能控制ui界面上的按钮选择,不能实现我设定的功能...

    已结贴√ 问题点数:20 回复次数:2 使用qt 键盘上的方向键只能控制ui界面上的按钮选择,不能实现我设定的功能 我做的是一个贪吃蛇游戏,现在我想实现的功能是:按下键盘上的上下左右箭头的方向按键时, ...

  7. java 怎么让图片运动,小编给你传授java怎么实现键盘控制图片移动

    电脑现已成为我们工作.生活和娱乐必不可少的工具了,在使用电脑的过程中,可能会遇到java怎么实现键盘控制图片移动的问题,如果我们遇到了java怎么实现键盘控制图片移动的情况,该怎么处理怎么才能解决ja ...

  8. linux图形界面鼠标变成小手_扔掉鼠标,用键盘控制一切~

    如今大家使用计算机,必不可少地需要鼠标和键盘.鼠标的存在极大地方便了用户在使用个人计算机的过程中的操作,特别是windows操作系统. 但是当以linux作为个人操作系统的时候,肯定会意识到一定情况下 ...

  9. java 图片 运动_怎么在GUI中用键盘控制图片运动?java问题?

    怎么在GUI中用键盘控制图片运动?java问题? 关注:174  答案:3  mip版 解决时间 2021-01-17 01:03 提问者落叶.牵绊着思念 2021-01-16 09:43 怎么在GU ...

最新文章

  1. UI组件:ext、JqueryEasyUI、miniui、dhtmlx及自定义页面
  2. K8S删除某一个命名空间下所有的pod deployment statefulset命令
  3. Disturbed People(思维)
  4. 关于Cocos2d-x中init方法和onEnter方法的区别
  5. servlet里面为什么有时候覆_为什么新来的经理强烈推荐?前后端分离知识,学到了...
  6. 大数据的岗位职责,我们未来的大数据职业选择有哪些
  7. AcWing 1952. 金发姑娘和 N 头牛(离散化+差分)
  8. javaweb JAVA JSP球鞋销售系统购物系统ssm购物系统购物商城系统源码(ssm电子商务系统)
  9. 单片机c语言入门 龙脉工作室著,单片机c语言入门
  10. “AI超人”李开复慢下来的投资节奏
  11. html诗词赏析网页制作,html 网页文本设计
  12. Ubuntu实现网络链接设置
  13. 你唯一需要擅长的事情
  14. chromedriver 下载与安装方法[转]
  15. 广义表C/C++实现详解
  16. 顺序表的基本操作(详细、全面)
  17. 如何使用计算机备用内存,怎样解决emwin7/em备用存储空间占用高-win7 内存占用高,电脑物理内存占用90...
  18. 知乎Redis的演进之路:从单机到2000万QPS的挑战
  19. 高频强调滤波增强图像
  20. 贪心绝对值不等式-货仓选址

热门文章

  1. Quartus 11.0 的AS 下载方式和JTAG下载jic文件的方式
  2. LeetCode_database刷题记录(627. 交换工资)
  3. mysql复合语句声明开始于_mysql8 参考手册--BEGIN ... END复合语句
  4. List中对象model的排序问题
  5. iOS一个简单的设置圆角不引起性能问题的分类
  6. 洛谷P1402 酒店之王
  7. Java 多线程 4:wait() 和 notify()/notifyAll()
  8. 通过Git进行分支管理
  9. nodejs 批量修改、删除
  10. 关于Android中获取Intent里的数据