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

【Java AWT 图形界面编程】Canvas 中绘制超大图片 ( 使用鼠标拖动查看全图 | 设置 JFrame 窗口自动关闭 | 获取并绘制图片 | 鼠标拖动计算位移 | 画布偏移 )

一、Canvas 中绘制超大图片要点 ---- 1、设置 JFrame 窗口自动关闭 创建 JFrame 窗口后 , 通过调用 JFrame#setDefaultCloseOperation 可以设置窗口自动关闭...; // 创建 JFrame 窗口 JFrame frame = new JFrame("Large Canvas"); // 设置窗口关闭行为 点击右上角关闭按钮...关闭窗口并退出应用 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 2、获取并绘制图片 在 AWT 中 , 使用 Toolkit.getDefaultToolkit..., 偏移量 ( offsetX , offsetY ) 一直在累加 , 每次累加 , 都要重绘画布 , 重绘时 , 调用 Graphics2D#translate 对画布进行整体偏移 ;...// 画布进行整体偏移 Graphics2D g2 = (Graphics2D)g; g2.translate(offsetX, offsetY); 二、代码示例 ---

1.4K20

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

-- 在 【Java AWT 图形界面编程】Canvas 中绘制超大图片 ( 使用鼠标拖动查看全图 | 设置 JFrame 窗口自动关闭 | 获取并绘制图片 | 鼠标拖动计算位移 | 画布偏移 ) 博客中..., 绘制了超大图像 , 可以使用鼠标拖动 ; 在 【Java AWT 图形界面编程】使用鼠标滚轮放大缩小 Canvas 画布 ( 鼠标滚轮事件监听器 MouseWheelListener ) 博客中..., 新增鼠标滚轮缩放画布示例 , 但是使用鼠标拖动时 , 拖动的效果也随之缩放, 如 缩小画布后 , 移动鼠标 , 移动距离对应的缩放效果也随之缩小 ; 在 【Java AWT 图形界面编程】使用鼠标滚轮放大缩小...Canvas 画布中绘制的背景图像 ( 鼠标滚轮事件监听器 MouseWheelListener | Canvas 中绘制图像并设置图像大小 ) 博客中 , 使用缩放背景图像的方式 , 实现缩放效果...} public void paintComponent(Graphics g) { super.paintComponent(g); // 画布进行整体偏移

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

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

    文章目录 一、使用鼠标滚轮放大缩小 Canvas 画布 - 要点分析 1、鼠标滚轮事件 2、核心代码示例 二、绘制超大图像 + 鼠标拖动 + 鼠标滚轮缩放示例 1、代码示例 2、效果展示 一、使用鼠标滚轮放大缩小...} } 二、绘制超大图像 + 鼠标拖动 + 鼠标滚轮缩放示例 ---- 在 【Java AWT 图形界面编程】Canvas 中绘制超大图片 ( 使用鼠标拖动查看全图 | 设置 JFrame 窗口自动关闭...} public void paintComponent(Graphics g) { super.paintComponent(g); // 画布进行整体偏移...窗口 JFrame frame = new JFrame("Large Canvas"); // 设置窗口关闭行为 点击右上角关闭按钮 关闭窗口并退出应用...: 使用鼠标滚轮缩小画布 : 拖动缩小后的画布到中央位置 :

    2.3K30

    【错误记录】Java AWT 图形界面编程设置键盘事件没有响应 ( 设置键盘事件 | 键盘事件必须设置到 Frame JFrame 对象上 )

    一、报错信息 ---- 实现一个需求 , 按键 数字 按键 , 让 Canvas 画布中绘制的图像根据按下的数值进行缩放 ; 在 AWT 自定义 Canvas 组件中 , 添加按键事件 , 下面定义的...} } }); 出现问题的博客代码 : 【Java AWT 图形界面编程】使用小键盘按键缩放 Canvas 画布中绘制的背景图像...( 键盘按键监听 + 绘制超大图像 + 鼠标拖动 + 鼠标滚轮缩放 + 以当前鼠标指针位置为缩放中心 示例 ) ; 二、解决方案 ---- 鼠标事件 , 可以添加到具体的 Component 组件上..., 但是凡是涉及到 键盘 的事件 , 必须添加到顶级组件 , 也就是窗口组件上 , 如 : Frame / JFrame 组件上 , 才能生效 ; 否则就会出现上述情况 , 为 组件设置的 KeyAdapter.../ KeyListener 监听 , 根本不回调相应的回调函数 ; 将 KeyAdapter / KeyListener 监听器 设置到 JFrame 窗口上 , 此时在该应用中按下对应的按键 , 就会回调

    52720

    《Java 2 图形设计卷Ⅱ- SWING》第2章 Swing的基本知识

    虽然可以分别使用Applet类和Frame类来实现Swing的小应用程序和应用程序,但是,这样很可能出现事件处理问题和重新绘制问题。...由于小应用程序是由浏览器(或小应用程序阅读器)进行实例化的,所以,正常情况下,不需要直接把JApplet的一个实例进行实例化。...,即浏览器不启动它们也不设置它们的大小。...如果缺省的设置不令人满意的话,也可扩展JFrame以重载frameInit()。    使用AWT窗体时,开发人要负责处理窗口关闭事件。...这个main方法把JFrame实例化,而且还创建这个小应用程序的一个实例。在调用小应用程序的init方法后,窗体用该小应用程序的内容窗格来替代该窗体的内容窗格。这个窗体接着设置其边界和标题。

    2.5K20

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

    一、鼠标滚轮缩放的中心点设置为当前鼠标中心点 - 要点分析 ---- 鼠标指针指向界面中的 Canvas 画布某个位置 , Canvas 画布中绘制着一张超大图片 , 以该位置为中心 , 滑动鼠标滚轮时进行缩放...; 使用鼠标滚轮缩放后 , 在 Canvas 中绘制的图片的尺寸肯定是放大或者缩小了 , 尺寸发生了改变 ; 图片缩放时 , 鼠标指针指向一个位置 , 该位置对应着一个当前 Canvas 画布中的 x..., 保存当前的鼠标位置及比例 ; 在鼠标滚轮事件 MouseWheelEvent 中 , 可以直接通过调用 e.getX(), e.getY() 获取到当前 鼠标指针 在 Canvas 画布的坐标 ;...double imageHeight = image.getHeight(null) * scale; // 缩放后的图像高度 有了鼠标指针在图片中的位置 , 图片的尺寸 , 就可以计算出鼠标指针在图片中的比例..., 将图像中船头的 H 标识放置在界面中心 ; 将鼠标指针放在 H 位置 , 缩放 , 发现此时缩放 , 就是以当前鼠标指针为中心进行的缩放 ;

    2.8K10

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

    实现过程 (1)绘制窗体对象。 (2)静态UI设计(包括小蛇,食物,游戏区域和标题区域)。 (3)使用键盘监听事件和定时器实现小蛇的移动。 (4)小蛇与食物碰撞的实现。...; public class Ui { public static void main(String[] args){ JFrame frame=new JFrame("无尽版贪吃蛇");...---- 总结 本游戏的设计思路类似于游戏“贪吃蛇大作战”,程序在一些功能的实现上还存在许多不足,但该项目的实现对Java新手的实战能力有很大的提升。...在使用Java编写该项目时遇到了很多问题,在解决问题时,可以对java的面向对象编程有更加深入的理解和认识。 ---- 本项目在一定程度上还有缺陷,仅用于初学者学习,欢迎各位指正。...本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    99020

    高级Swing 组件

    跟踪列表选择事件 在介绍列表的后半部分中,我们还要讲述一些需要更高操作技巧的更加复杂的列表形式,它们是: n 很长的列表 n 内容经常变化的列表 n 不包含字符串的列表...请注意,该接口并没有设定如何进行对象的存储。尤其是,它根本没有要求对它们进行存储!getElementAt方法可以在每个值被调用时随意对这些值进行从新计算。...getElementAt(​int​ i){ ​return​ listData.elementAt(i); } }); } 这意味着,如果你在列表建立后修改了向量的内容...对描述插入事件或删除事件的树模型事件进行汇编的具体细节,具有很强的技术性。如果你的树实际上可以进行节点的添加和删除,那么你只需要考虑如何触发这些事件。...在示例代码中,我们将要讲述如何触发一个事件,也就是如何用一个新对象来取代根节点。

    6910

    基于Java实现图像浏览器的设计与实现

    功能需求 功能一:我们可以在程序上进行随意绘画,点击保存按钮,我们可以将刚才绘画的内容进行保存,可以选择自己所需要的类型进行保存 功能二:在界面上按照提示,点击“浏览”按钮,打开文件对话框,选择图片,图片会显示在页面中...添加了鼠标拖动事件监听器,在鼠标拖动时将鼠标位置记录到 pathPoints 列表中,并使用临时的 Graphics2D 对象绘制路径。...添加了鼠标释放事件监听器,在鼠标释放时清空 pathPoints 列表。...JFrame,和接口ActionListener,FilenameFilter实现对绘制的图片进行查看,或者对已有的图片进行旋转、放大、缩小、下一张、上一张和删除 成员变量: 在查看图片的时候控制数组的下标...它继承自JFrame,并实现了ActionListener接口,这意味着它可以响应按钮点击等事件。

    14810

    用JavaSocket编程开发聊天室,附超详细注释

    好友列表:完成好友列表在各个客户端上显示。 私聊:可以实现私人聊天,用户可以选择某个其他用户,单独发送信息,接受私聊消息方可以直接弹出消息框。...客户端 客户端需要实现的主要功能是群发消息和私发消息,并且通过收到的消息格式判断服务器发送过来的消息,再进行响应的代码。...userList.isSelectionEmpty()){ //未点击用户不执行 suser = userList.getSelectedValuesList().get...}else if(label.equals("关于本软件")){ JOptionPane.showMessageDialog(this, "1.可以在聊天框中进行群聊...(400,310); jFrame.setLocation((int)MAIN_FRAME_LOC_X+20,(int)MAIN_FRAME_LOC_Y+20);//将私聊窗口设置总是在父窗口的中间弹出

    1.8K20

    Java实现坦克大战1.0

    介绍-快速入门 绘图原理 在面板上画一个小圆。 Component类提供了两个和绘图相关最重要的方法:1. paint(Graphics g)绘制组件的外观 repaint()刷新组件的外观。...当组件第一次在屏幕显示的时候,程序会自动的调用paint()方法来绘制组件。...在以下情况paint(将会被调用: 1.窗口最小化.再最大化 2.窗口的大小发生变化 3.repaint方法被调用 Graphics 类 Graphics类你可以理解就是画笔,为我们提供了各种绘制图形的方法...(2)事件监听者实际上就是一个类,该类实现了某个事件监听器接口比如前面我们案例中的MyPanle就是一个类,它实现了KeyListener接口,它就可以作为一个事件监听者,对接受到的事件进行处理。...(3)事件监听器接口有多种,不同的事件监听器接口可以监听不同的事件,一个类可以实现多个监听接口 (4)这些接口在java.awt.event包和javax.swing.event包中定义。

    75910

    不敢相信,居然用Java写了个“天天酷跑”!

    实现在输对用户名和密码后即可进入开始游戏界面的功能。 界面功能需求图: 具体要求: 当鼠标移入开始游戏按钮后,按钮将由暗变亮,鼠标移开后,按钮又由亮变暗。 帮助、离开按钮同理。...static int getWidth() {  return WIDTH; } public static int getHeight() {  return HEIGHT; }    } 需要注意的是,在创建后...以便在面板类中对其障碍物进行操作。 障碍物二:宠物 与其称之障碍物,不如说它是个跟着玩家的小跟班。...上下左右碰撞的逻辑代码,在动图下方: 5、暂停、继续逻辑 在监听键盘按键的方法中。...而总分,我在Person类中,设定了一个简单的计分规则: 三、再来一次 在鼠标点击事件内,new一个新的加载界面,加载完成后自动进入游戏。 四、返回主界面 同理。 五、直接退出 同理。

    1.6K30
    领券