首页
学习
活动
专区
圈层
工具
发布

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

文章目录 一、使用鼠标滚轮放大缩小 Canvas 画布 - 要点分析 1、鼠标滚轮事件 2、核心代码示例 二、绘制超大图像 + 鼠标拖动 + 鼠标滚轮缩放示例 1、代码示例 2、效果展示 一、使用鼠标滚轮放大缩小...---- 在 【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 class LargeCanvas extends JPanel { // 鼠标按下时的坐标

4K30

Java线程状态

,这样一来问题的焦点就在于还没有开始执行,我们都知道当调用线程的start()方法时,线程不一定会马上执行,因为Java线程是映射到操作系统的线程进行执行,此时可能还需要等操作系统调度,但此时该线程的状态已经为...其实这只是Java 语言级别的一种状态,在操作系统内部可能已经注销了相应的线程,或者将它复用给其他需要使用线程的请求,而在Java语言级别只是通过Java 代码看到的线程状态而已。...由此可见它希望该动作由Java 程序这个抽象层次来控制,它为什么不想去自己控制锁呢 因为有些时候更低抽象层次的锁未必是好事,因为这样的请求对于外部可能是反复循环地去征用,或者这些代码还可能在其他地方复用...,也许将它粗粒度化会更好一些,而且这样的代在写在Java 程序中本身也会更加清晰,更加容易看到相互之间的关系。...java文档就简单的写了句:选择是任意性的。

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

    Java状态模式(State)

    比如: 电梯的运行 • 维修、正常、自动关门、自动开门、向上运行、向下运行、消防状态 红绿灯 • 红灯、黄灯、绿灯 企业或政府系统 • 公文的审批状态 – 报销单据审批状态 – 假条审批...这时我们可以考虑用状态模式来实现。 状态模式实现 类图结构 ?...核心: 用于解决系统中复杂对象的状态转换以及不同状态下行为的封装问题 角色 说明 Context环境类 环境类中维护一个State对象,他是定义了当前的状态。...State 具体状态类 ConcreteState具体状态类 每一个类封装了一个状态对应的行为 ?...修改状态! 房间已预订!别人不能定! 开发中常见的场景: 银行系统中账号状态的管理 OA系统中公文状态的管理 酒店系统中,房间状态的管理 线程对象各状态之间的切换

    1.9K30

    Java线程状态详解

    Java线程状态详解 一. 背景 最近在深入研究Java并发编程,看到网上有很多关于线程状态的总结,有的不全面,有的根本就是错的。...因此,在这里我结合最权威的Java源代码,尝试对Java线程状态进行一个详细的解读。 二....线程状态定义 Java线程状态使用Thread的内部类State来表示,而在Thread类中,也有一个threadStatus字段来标明当前线程的状态。...BLOCKED:阻塞状态,表示线程正在等待一个监视器锁(monitor lock),而监视器锁在Java代码中的体现就是synchronized关键字。...线程状态迁移 在著名的《Java并发编程的艺术》一书中,对线程的状态迁移做了很好的总结,这里直接引用书中的图片,并感谢方腾飞等老师。 ? 四.

    1.2K20

    Java - 字符编码

    字符集 字符集是一系列字符的集合,将每个收录的字符和数字进行映射。...最早的字符集是ASCII,使用一个字节进行存储字符,8位一共可以表示256个字符,而ASCII只使用了其中的128位,即0~127位,这128位里面包括了常用的英文字符以及标点符号。...Unicode是一个几乎包括了世上所有字符的字符集,每个字符都有一个对应的独一无二的Unicode码,比如聊天时使用的emoji表情字符,GitHub上也可以通过 :grin: 这种写法来输出emoji...字符编码其实就是对Unicode字符集的实现方式,用以约定如何用1~4个字节来存储字符。 字符编码 UTF-8 UTF-8是可变长编码,即多字节编码,在存储不同的字符时使用的字节数量是不同的。...Java就是使用的这个编码来存储字符,中文和英文都是两个字节(即char这个基础数据类型),所以Java是双字节编码。 UTF-16LE,使用两个字节进行存储的小端编码。

    2.7K10

    Java线程的几种状态

    java.lang.Thread.State中定义的集中Java线程的状态: 1 /** 2 * A thread state....处于可运行状态的线程正在Java虚拟机中执行,但它可能正在等待来自操作系统(如处理器)的其他资源 43 */ 44 RUNNABLE, 45 46 /**...上述Java代码定义的几个状态中其实是没有running状态的。 线程的runnable状态是从虚拟机的角度来看的,表示这个线程正在运行。 但是处于Runnable状态的线程不一定真地消耗CPU....处于Runnable的线程只能说明该线程没有阻塞在java的wait或者sleep方法上, 同时也没等待在锁上面。...阻塞与等待的区别: 阻塞:当一个线程试图获取对象锁(非java.util.concurrent库中的锁,即synchronized),而该锁被其他线程持有,则该线程进入阻塞状态。

    1.8K60

    java线程几种状态介绍

    java线程的五大状态分别为:创建状态(New)、就绪状态(Runnable)、运行状态(Running)、阻塞状态(Blocked)、死亡状态(Dead)。...今天说一说java线程几种状态介绍,希望能够帮助大家进步!!!...线程的五大状态及其转换: 线程的五大状态分别为:创建状态(New)、就绪状态(Runnable)、运行状态(Running)、阻塞状态(Blocked)、死亡状态(Dead)。...(2)就绪状态:在创建了线程之后,调用Thread类的start()方法来启动一个线程,即表示线程进入就绪状态! (3)运行状态:当线程获得CPU时间,线程才从就绪状态进入到运行状态!...(5)死亡状态:run()方法的正常退出就让线程进入到死亡状态,还有当一个异常未被捕获而终止了run()方法的执行也将进入到死亡状态! 谢谢大家,希望帮助更多的人

    78020

    Java 线程状态有哪些?

    Java 线程状态有哪些? 线程状态有 5 种,新建,就绪,运行,阻塞,死亡。关系图如下: ? 1....线程 start 方法执行后,并不表示该线程运行了,而是进入就绪状态,意思是随时准备运行,但是真正何时运行,是由操作系统决定的,代码并不能控制, 2....同样的,从运行状态的线程,也可能由于失去了 CPU 资源,回到就绪状态,也是由操作系统决定的。这一步中,也可以由程序主动失去 CPU 资源,只需调用 yield 方法。 3....时间到了会进入就绪状态 主动调用 suspend 方法。主动调用 resume 方法,会进入就绪状态 调用了阻塞式 IO 方法。调用完成后,会进入就绪状态。 试图获取锁。...成功的获取锁之后,会进入就绪状态。 线程在等待某个通知。其它线程发出通知后,会进入就绪状态

    1.8K30
    领券