首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java AWT 图形界面编程】使用鼠标滚轮放大缩小 Canvas 画布 ( 鼠标滚轮事件监听器 MouseWheelListener )

, 通过 MouseWheelEvent 对象 , 获取鼠标滚轮的滑动方向 , 向上滑动 , 放大画布 , 画布增加 10% ; 向下滑动 , 缩小画布 , 画布缩小 10% ; 一旦 scale...【Java AWT 图形界面编程】Canvas 中绘制超大图片 ( 使用鼠标拖动查看全图 | 设置 JFrame 窗口自动关闭 | 获取并绘制图片 | 鼠标拖动计算位移 | 画布偏移 ) 博客中 , 绘制了超大图像..., 可以使用鼠标拖动 , 这里在上述基础上 , 新增鼠标滚轮缩放示例 ; 1、代码示例 代码示例 : import javax.swing.*; import java.awt.*; import java.awt.event.MouseAdapter...; import java.awt.event.MouseEvent; import java.awt.event.MouseWheelEvent; import java.awt.event.MouseWheelListener...// 鼠标拖动事件 public void mouseDragged(MouseEvent e) { // 统计本次鼠标移动的相对值

2.2K30

Java AWT 图形界面编程】使用小键盘按键缩放 Canvas 画布中绘制的背景图像 ( 键盘按键监听 + 绘制超大图像 + 鼠标拖动 + 鼠标滚轮缩放 + 以当前鼠标指针位置为缩放中心 示例 )

一、键盘按键监听 - 要点分析 ---- 如果要为 Java AWT 界面编程的应用设置键盘按键监听 , 必须为 Frame / JFrame 窗口设置键盘监听 , 为组件设置是无效的 ; 下面是设置键盘监听的核心代码...【Java AWT 图形界面编程】Canvas 中绘制超大图片 ( 使用鼠标拖动查看全图 | 设置 JFrame 窗口自动关闭 | 获取并绘制图片 | 鼠标拖动计算位移 | 画布偏移 ) 博客中 , 绘制了超大图像..., 可以使用鼠标拖动 ; Java AWT 图形界面编程】使用鼠标滚轮放大缩小 Canvas 画布 ( 鼠标滚轮事件监听器 MouseWheelListener ) 博客中 , 新增鼠标滚轮缩放画布示例..., 但是使用鼠标拖动 , 拖动的效果也随之缩放, 如 缩小画布后 , 移动鼠标 , 移动距离对应的缩放效果也随之缩小 ; Java AWT 图形界面编程】使用鼠标滚轮放大缩小 Canvas 画布中绘制的背景图像....*; import java.awt.event.*; public class LargeCanvas extends JPanel { // 鼠标按下的坐标 以及 更新后的坐标

1.8K20
您找到你想要的搜索结果了吗?
是的
没有找到

Java AWT 图形界面编程】Canvas 组件中使用 Graphics 绘图 ④ ( AWT 绘图窗口闪烁问题 )

, 如果在循环中 持续调用 Canvas#repaint() 函数刷新界面 , 代码如下 : import java.awt.*; public class HelloAWT { public...界面中一直闪烁 ; 每次刷新都闪烁一次 ; 参考 【Java AWT 图形界面编程】Canvas 组件中使用 Graphics 绘图 ① ( AWT 绘图线程 | Component 绘图函数 )...函数 , 会先将屏幕清空 , 然后再重新调用 Canvas#paint 函数进行绘制 , 此时就造成了界面闪烁的现象 ; 为了避免上述闪烁的情况 , 也就是绘制过程中 , 不出现 屏幕清空 的情况...; 这里 引入 双缓冲 机制 , 建立一个 图片缓冲区 , 用于缓存图片 , 绘制绘制到图片缓冲区 , 绘制完毕后再将整张图片绘制到界面中 , 这样界面中就不会出现 清空的情况 , 始终都有内容显示...将缓冲区中的图片绘制到窗口界面中 g.drawImage(mBufferedImage, 0, 0, null); } 二、完整代码示例 ---- 代码示例 : import java.awt

75710

Java-GUI编程之绘图

绘图 很多程序如各种小游戏都需要在窗口中绘制各种图形,除此之外,即使开发JavaEE项目,有时候也必须"动态"地向客户 端生成各种图形、图表,比如 图形验证码、统计图等,这都需要利用AWT的绘图功能...AWT中,真正提供绘图功能的是Graphics对象,那么Component组件和Graphics对象存在什么关系,才能让Component绘制自身图形呢?...; ​ repaint():调用update方法,刷新组件外观; 一般情况下,update和paint方法是由AWT系统负责调用,如果程序要希望系统重新绘制组件,可以调用repaint方法完成。...Graphics类的使用 实际生活中如果需要画图,首先我们得准备一张纸,然后拿一支画笔,配和一些颜色,就可以纸上画出来各种各样的图形,例如圆圈、矩形等等。...绘图API,完成下图效果 演示代码: import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener

1.1K00

Java游戏编程不完全详解-3(爆肝一万七千字)

界面和交互 AWT事件模型 如果一个人玩橡棋就像一个人玩游戏没有交互一样,会非常无聊,所以玩家最大的乐趣就是与电脑或者人的交互。...以上代码中,我们Robot类移动鼠标,但是鼠标移动事件可能不会立即出现,所以代码会检查鼠标移动事件是否定位在屏幕中央。...对于鼠标的样子,我们可以使用Java API创建自己的样式,创建需要使用Toolkit类的createCustomerCursor()方法来实现 游戏中我们可以呼叫Toolkit类截取一个不可见的光标...使用输入管理器 下面,我们创建一个hero可以左右移动,以及跳跃的行为;另外我们可以该应用程序添加暂停功能,不过这不是一个真正的游戏。 其中,人物跳跃需要表现重力—人物会回到地面的感觉。...而现在我们必须手动关闭这个功能,从而达到控制组件的呈现时机,比如按一个按钮,我们让该按钮呈现被按下的样子,该组件需要呼叫repaint()方法来重绘组件的样子。

2.1K10

双缓冲原理Awt和Swing中实现消除闪烁方法总结

二、Swing界面编程        随着Java的发展,AWT已经渐渐被淘汰,它已经不能适应发展的需要,不能满足开发功能强大的用户界面的需要。...这时Swing出现了,它是建立AWT之上的组件集,不同的平台上都能保持组件的界面样式,因此得到了非常广泛的应用。...1.Frame:重量级组件 2.JFrame:轻量级组件 出现问题: ①.窗体调用repaint()方法闪烁严重 ②.窗体设置双缓冲重绘后,DrawImage()进行缩放图片时会失真,Graphics2D...---- Awt中对于窗体画布的重绘其条用顺序是repaint() —>update()—>paint(); 默认的upadate()中自带clearRect()方法,即清屏功能,程序运行时我们调用repaint...repaint()方法重量级组件的时候会调用update方法,轻量级组件的时候会调用paint方法 即JFrame根本不会去调用update()方法!

2.2K20

气球飘飘:用Java Swing创造令人心旷神怡的视觉奇观

本文中,我将向你展示如何利用Java Swing技术,以及一些简单的代码,让彩色气球屏幕上飘舞起来。这种视觉效果不仅适合儿童节,也可以为你的应用程序增添一份活力和趣味。...为了解决这些问题,Sun公司1997年推出了JFC(Java Foundation Classes),其中包含了一个新的图形用户界面技术——Swing。...Swing最初是作为一个可选的扩展包提供的,后来1998年被集成到了Java 2平台中,并成为了Java标准图形用户界面技术。...布局是指Swing组件容器中的排列方式,如水平对齐、垂直对齐等,它们都实现了java.awt.LayoutManager接口,并提供了一些常用的布局管理器,如流式布局、网格布局等。...java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.geom.GeneralPath;

8810

Java AWT 图形界面编程】使用鼠标滚轮缩放 Canvas 画布中绘制的背景图像 ( 绘制超大图像 + 鼠标拖动 + 鼠标滚轮缩放 + 以当前鼠标指针位置为缩放中心 示例 )

; 使用鼠标滚轮缩放后 , Canvas 中绘制的图片的尺寸肯定是放大或者缩小了 , 尺寸发生了改变 ; 图片缩放 , 鼠标指针指向一个位置 , 该位置对应着一个当前 Canvas 画布中的 x...垂直方向的比例 仍然保持不变 , 那就需要移动图片的位置 ; 如果放大图片就需要将图片往左上方移动 ; 如果缩小图片就需要将图片往右下方移动 ; 此时可以分析出 , 如果要实现 鼠标滚轮缩放的中心点设置为当前鼠标中心点...canvasY); } 二、绘制超大图像 + 鼠标拖动 + 鼠标滚轮缩放 + 以当前鼠标指针位置为缩放中心 示例 ---- 1、代码示例 import javax.swing.*; import java.awt....*; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseWheelEvent...; import java.awt.event.MouseWheelListener; public class LargeCanvas extends JPanel { // 鼠标按下的坐标

2.7K10

贪吃蛇大作战java代码_java做贪吃蛇需要用到哪些知识

{ } Jetbrains全家桶1年46,售后保障稳定 MyPanel类 构造方法 package Demo; import java.awt.Color; import java.awt.Component...; import java.awt.Font; import java.awt.Graphics; import java.awt.event.ActionEvent; import java.awt.event.ActionListener...; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.util.Random; import...---- 总结 本游戏的设计思路类似于游戏“贪吃蛇大作战”,程序一些功能的实现上还存在许多不足,但该项目的实现对Java新手的实战能力有很大的提升。...使用Java编写该项目遇到了很多问题,解决问题,可以对java的面向对象编程有更加深入的理解和认识。 ---- 本项目在一定程度上还有缺陷,仅用于初学者学习,欢迎各位指正。

89620

Java实现坦克大战1.0

介绍-快速入门 绘图原理 面板上画一个小圆。 Component类提供了两个和绘图相关最重要的方法:1. paint(Graphics g)绘制组件的外观 repaint()刷新组件的外观。...当事件发生,产生事件的对象,会把此"信息”传递给"事件的监听者"处理,这里所说的“信息"实际上就是java.awt.event事件类库里某个类所创建的对象,把它称为"事件的对象"。...(3)事件监听器接口有多种,不同的事件监听器接口可以监听不同的事件,一个类可以实现多个监听接口 (4)这些接口java.awt.event包和javax.swing.event包中定义。...坦克动起来 现在我们学习java事件处理机制和java绘图技术,请试试看如何让你的坦克可以通过按键控制上右下左(wdsa表示)的移动。....*; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.util.Vector; /**

71910
领券