news 2026/6/10 22:31:14

Java---小球移动案例(附代码)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java---小球移动案例(附代码)

小球可以上下左右移动

import javax.swing.*; import java.awt.*; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; /** * 演示小球通过键盘进行上下左右的移动,讲解 Java 事件控制 */ public class BallMove extends JFrame { MyPanel mp = null; public static void main(String[] args) { BallMove ballMove = new BallMove(); } // 构造器 public BallMove() { mp = new MyPanel(); this.add(mp); // 把面板加入到窗口 this.setSize(400,300); // 设置大小 // 窗口 JFrame 可以监听键盘事件,即可以监听到键盘发生的面板事件 this.addKeyListener(mp); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 点 × 即退出 this.setVisible(true); // 设置为可见 } } // 面板,画出小球 // KeyListener 是一个监听器,它可以监听键盘事件 class MyPanel extends JPanel implements KeyListener { //为了让小球可以移动,把小球坐标设置成变量 int x = 10; int y = 10; @Override public void paint(Graphics g) { super.paint(g); g.drawOval(x,y,20, 20); // 把小球放在坐标为(10.10)的位置,大小为宽高各为20 } // 有字符输出时,该方法就会被触发 @Override public void keyTyped(KeyEvent e) { } // 当某个键被按下时,该方法会触发 @Override public void keyPressed(KeyEvent e) { // System.out.println((char)e.getKeyChar() + "被按下..."); // 根据用户按下的不同键,来处理小球移动 // 在 java 中,会给每个键分配一个值(int) ASCII码 if (e.getKeyCode() == KeyEvent.VK_DOWN) { // KeyEvent.VK_DOWN 就是向下的箭头对应的code y++; } else if (e.getKeyCode() == KeyEvent.VK_UP) { y--; } else if (e.getKeyCode() == KeyEvent.VK_LEFT) { x--; } else if (e.getKeyCode() == KeyEvent.VK_RIGHT) { x++; } // 让面板重绘 this.repaint(); } // 当某个键被释放(松开)了,该方法被触发 @Override public void keyReleased(KeyEvent e) { } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 13:56:38

55、UNIX 系统中 STREAMS 机制与 Idterm 模块详解

UNIX 系统中 STREAMS 机制与 Idterm 模块详解 1. 进程组操作 用户输入第二组进程的命令字符串后,shell 会将组内的首个进程设为进程组组长,其余成员归入同一进程组。接着,系统会调用 tcsetpgrp 把终端切换到这个新的进程组,随后 shell 再次执行等待操作。 若用户输入 …

作者头像 李华
网站建设 2026/6/9 22:06:54

56、UNIX系统V Release 4的终端与网络特性解析

UNIX系统V Release 4的终端与网络特性解析 1. 终端字符读取延迟问题 在字符读取操作完成时,当字符缓慢输入时存在一个明显的缺点,即字符在被读取之前至少会有0.1秒的延迟。 2. 其他终端问题 UNIX系统V Release 4的终端I/O机制支持伪终端和智能串行设备控制器,下面将分别…

作者头像 李华
网站建设 2026/6/10 13:53:26

6、日期时间与算法数据结构相关问题及解决方案

日期时间与算法数据结构相关问题及解决方案 1. 日期和时间问题 在处理日期和时间相关的编程任务时,会遇到各种各样的问题,下面将详细介绍这些问题及对应的解决方案。 1.1 问题列表 问题编号 问题描述 39 测量函数执行时间,需编写一个函数能以任意所需的时长单位(如秒…

作者头像 李华
网站建设 2026/6/10 13:53:25

62、进程管理命令详解与问题排查

进程管理命令详解与问题排查 1. 进程槽位设置命令 defproc 在进程管理中, defproc 命令用于设置当前的默认进程槽位。像 trace 和 proc 这类命令,会显示默认槽位中进程的相关信息。若你想关注槽位 15 中的进程,只需输入如下命令: defproc 152. proc 命令详解 2.…

作者头像 李华
网站建设 2026/6/10 13:53:27

当差分进化遇上自适应:手把手拆解CEC2005优化实战

差分进化算法(DE)和自适应差分进化算法(SaDE)跑23个经典CEC2005测试集 代码含有详细中文注释,方便读者研究和二次改进 差分进化算法(DE)是一种启发式优化算法,用于解决连续型优化问题。 它模拟了生物进化中…

作者头像 李华
网站建设 2026/6/10 14:08:50

C++中noexcept关键字提出动机和使用

一、noexcept 是为了解决什么问题? 在 C11 之前,异常说明使用的是动态异常规范: void f() throw(int, std::bad_alloc); void g() throw(); // 表示不抛异常问题极其严重: 运行期检查,零优化空间违反即调用 unexp…

作者头像 李华