如何在 Java AWT 和/或 Swing 中更改光标图像?

2023-12-29

I'm making a simple graphics editor (i.e a paint program). I am not planning on anything fancy, but I do want my program to change the mouse cursor to something like a "+" or an "O" when it enters the Paint Panel. like in Photoshop or GIMP. Gimp Cursor

我该怎么做?我在 AWT / Swing 线程中找不到有关如何更改鼠标光标的任何内容。


以防万一有人想要比任何默认光标更“奇特”的东西:可以创建一个显示任意自定义图像的自定义光标(如果工具包支持它)。一个粗略的(没有闪亮的视觉效果)示例:

    Toolkit kit = Toolkit.getDefaultToolkit();
    Dimension dim = kit.getBestCursorSize(48, 48);
    BufferedImage buffered = GraphicsUtilities.createCompatibleTranslucentImage(dim.width, dim.height);
    Shape circle = new Ellipse2D.Float(0, 0, dim.width - 1, dim.height - 1);
    Graphics2D g = buffered.createGraphics();
    g.setColor(Color.BLUE);
    g.draw(circle);
    g.setColor(Color.RED);
    int centerX = (dim.width - 1) /2;
    int centerY = (dim.height - 1) / 2;
    g.drawLine(centerX, 0, centerX, dim.height - 1);
    g.drawLine(0, centerY, dim.height - 1, centerY);
    g.dispose();
    Cursor cursor = kit.createCustomCursor(buffered, new Point(centerX, centerY), "myCursor");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Java AWT 和/或 Swing 中更改光标图像? 的相关文章

  • org.hibernate.hql.internal.ast.QuerySyntaxException:表未映射

    我有示例 Web 应用程序 Hibernate 4 3 5 Derby 数据库 10 10 1 1 Glassfish4 0 和 IDE NetBeans 8 0Beta 我有下一个例外 Caused by org hibernate hq
  • Java Double 对象存储到小数点后两位[重复]

    这个问题在这里已经有答案了 是否可以将 java lang Double 存储到正好两位小数 前任 0 2变成0 20 我将代码修改为以下 Double correlation getSomeDoubleValue label key da
  • 如何更改Swagger中操作成功的响应状态代码?

    如图所示 它显示添加操作的 响应类 状态 200 但是 add 操作的实现方式永远不会返回 200 成功时返回 201 我的问题是如何将 状态 200 更改为 状态 201 这部分的代码如下 RequestMapping method Re
  • Mockito:匹配除一个之外的任何字符串[重复]

    这个问题在这里已经有答案了 如何使用 Mockito 编写匹配器来匹配除特定字符串之外的任何字符串 我尝试使用一些 hamcrest 匹配器来否定和组合其他匹配器 但是 hamcrest 匹配器都返回类型的值Matcher
  • Java如何创建主线程

    我是 Java 技术的新手 我知道只有两种创建方法Thread in Java 扩展Thread类 实现可运行接口 所以这只是两种创建方式Thread 但是当我们用主 JVM 启动我们的程序时 启动了一个主程序Thread 我认为即使是 J
  • Mockito.any() 通过泛型接口

    是否可以通过泛型传递接口的类型 界面 public interface AsyncCallback
  • Maven 中的 Java EE 7 First Cup 教程错误:找不到工件 org.glassfish.javaeetutorial.firstcup:firstcup:pom:7.0.1-SNAPSHOT

    我正在关注 FirstCup 的 Java EE 7 更新版本 我安装了 glassfish 4 并使用 NetBeans 7 3 我正在研究第一个示例 但遇到了 Maven 问题 我生成了原型并能够创建 dukes age 项目 然而它有
  • 使用spring自动装配时如何传递构造函数参数?

    我们的项目使用 spring DI IoC 所以我使用自动装配来注入 beans 程序在实例化期间需要将参数传递给对象 并且参数是在运行时 而不是在编译时 知道的 如何在使用自动装配时实现这一点 示例代码如下 界面 IMessage pac
  • 如何在 Netbeans 中调试 Java Web 应用程序?

    我曾多次在 Netbeans 中调试 Java 桌面应用程序 但从未调试过 Java Web 应用程序 我尝试以同样的方式调试它 但它不起作用 我制作了一个index html网页 该页面上有一个 表格 用户提交表单后 请求将发送至 ser
  • API 调用 datastore_v3.Put() 的请求太大

    我正在使用 google cloud sql 和 appengine 我正进入 状态com google apphosting api ApiProxy RequestTooLargeException The request to API
  • JVM如何处理不同版本的重复JAR

    当存在不同版本的重复 JAR 时 行为会非常不一致 有谁知道 JVM 如何处理重复项 类加载器按顺序搜索类路径 并使用它找到的第一个匹配的类
  • java.lang.NoClassDefFoundError:org.apache.batik.dom.svg.SVGDOMImplementation

    我在链接到我的 Android LibGDX 项目的 Apache Batik 库时遇到了奇怪的问题 但让我们从头开始 在 IntelliJ Idea 中我有一个项目 其中包含三个模块 Main Android 和 Desktop 我强调的
  • Java new Date() 打印

    刚刚学习 Java 我知道这可能听起来很愚蠢 但我不得不问 System out print new Date 我知道参数中的任何内容都会转换为字符串 最终值是 new Date 返回对 Date 对象的引用 那么它是如何打印这个的呢 Mo
  • 为什么 i++ 不是原子的?

    Why is i Java 中不是原子的 为了更深入地了解 Java 我尝试计算线程中循环的执行频率 所以我用了一个 private static int total 0 在主课中 我有两个线程 主题 1 打印System out prin
  • Java中反射是如何实现的?

    Java 7 语言规范很早就指出 本规范没有详细描述反射 我只是想知道 反射在Java中是如何实现的 我不是问它是如何使用的 我知道可能没有我正在寻找的具体答案 但任何信息将不胜感激 我在 Stackoverflow 上发现了这个 关于 C
  • Java EE:如何获取我的应用程序的 URL?

    在 Java EE 中 如何动态检索应用程序的完整 URL 例如 如果 URL 是 localhost 8080 myapplication 我想要一个可以简单地将其作为字符串或其他形式返回给我的方法 我正在运行 GlassFish 作为应
  • 如何找到给定字符串的最长重复子串

    我是java新手 我被分配寻找字符串的最长子字符串 我在网上研究 似乎解决这个问题的好方法是实现后缀树 请告诉我如何做到这一点或者您是否有任何其他解决方案 请记住 这应该是在 Java 知识水平较低的情况下完成的 提前致谢 附 测试仪字符串
  • 使用 Android 发送 HTTP Post 请求

    我一直在尝试从 SO 和其他网站上的大量示例中学习 但我无法弄清楚为什么我编写的示例不起作用 我正在构建一个小型概念验证应用程序 它可以识别语音并将其 文本 作为 POST 请求发送到 node js 服务器 我已确认语音识别有效 并且服务
  • Spark 1.3.1 上的 Apache Phoenix(4.3.1 和 4.4.0-HBase-0.98)ClassNotFoundException

    我正在尝试通过 Spark 连接到 Phoenix 并且在通过 JDBC 驱动程序打开连接时不断收到以下异常 为简洁起见 下面是完整的堆栈跟踪 Caused by java lang ClassNotFoundException org a
  • 列出jshell中所有活动的方法

    是否有任何命令可以打印当前 jshell 会话中所有新创建的方法 类似的东西 list但仅适用于方法 您正在寻找命令 methods all 它会打印所有方法 包括启动 JShell 时添加的方法 以及失败 被覆盖或删除的方法 对于您声明的

随机推荐

  • 如何在 git 中执行多行提交消息? [复制]

    这个问题在这里已经有答案了 我已经做了一段时间的单行提交消息 但它没有提供有关提交的完整信息 git commit m message 我曾经使用过 git Gui 工具 它可以选择执行多行提交消息 一份在标题中 一份在详细信 息中 我们如
  • MESI缓存协议

    我正在读关于MESI 监听缓存一致性协议 http en wikipedia org wiki MESI protocol 我猜这是现代多核 x86 处理器中使用的协议 如果我错了 请纠正我 现在那篇文章在一处提到了这一点 保存处于修改状态
  • 删除 SQL Server 2010 中的“重复”行

    我在批量插入脚本中犯了一个错误 所以现在我有具有不同 colX 的 重复 行 我需要删除这些重复的行 但我不知道如何删除 更准确地说 我有这个 col1 col2 col3 colX 0 1 2 a 0 1 2 b 0 1 2 c 0 1
  • 隐式宏。默认隐式值。如何?

    我什至不知道如何问这个问题 我有一个宏可以创建一个实例IsEnum T 对于一个类型T 我正在对其进行测试 并希望确保对于未密封的类型或通常不满足枚举要求的类型找不到隐式类型 所以我创建了这个方法来测试 def enumOf T impli
  • 从系列中删除异常

    我在 Outlook 中有一个系列 但有一些例外 我想做的是删除本系列中的所有例外 有谁知道是否有办法做到这一点 由于例外列表是只读的 我尝试清除重复模式并重新应用例外列表之外的所有值 如下所示 Dim tRType As OlRecurr
  • NodeJS 是否尊重 Docker 虚拟化和资源限制?

    众所周知 某些应用程序不了解 Linux 内核隔离和虚拟化功能 例如 cgroup 这包括系统实用程序 例如top free and ps 还有 Java 等平台 我最近读过一篇文章 https very serio us 2017 12
  • 类型错误:运行 next.js 时,类扩展值未定义不是构造函数或 null

    在跑步的时候 npm run dev 我突然开始出现错误 几乎没有对项目代码进行任何更改 TypeError Class extends value undefined is not a constructor or null at Obj
  • 如何在 Go 中逐字符读取文件

    我有一些大的 json 文件想要解析 并且我想避免一次将所有数据加载到内存中 我想要一个函数 循环 它可以一次返回每个字符一个 I found 这个例子 http golangcookbook com chapters strings pr
  • 单元测试快速路由调用控制器方法?

    我看到一些类似的问题 https stackoverflow com questions 9517880 how does one unit test routes with express 但我的设置略有不同 我无法找出测试它的好方法 我
  • OS X 上的直接排序错误

    在 OS X 10 5 Emacs 23 2 上 在 dired 模式下 如果我尝试排序dired sort toggle or edit带前缀参数 sort extension or X 我得到 insert directory List
  • 如何在 cassandra cql 中对 2 个或更多表进行联接查询

    我是卡桑德拉的新手 这里我有两张桌子EVENTS and TOWER 我需要加入这些来进行一些查询 但我没有能力做到这一点 结构EVENTS table eid int PRIMARY KEY a end tow id text a hom
  • Android Studio Designer 显示小部件和片段的方式与我的手机不同

    我在 Android Studio 设计器和手机中显示项目时遇到问题 第一个问题是小部件和片段在设计器 模拟器中的显示与在我的手机上的显示不同 我尝试降低设计器中的分辨率来测试其他设备分辨率 但尽管分辨率相对相同 但它在我的手机上的显示效果
  • 德尔福 UUID 生成器

    Delphi 有内置的东西来生成 UUID 吗 program Guid APPTYPE CONSOLE uses SysUtils var Uid TGuid Result HResult begin Result CreateGuid
  • 如何从 Flash 中的 MovieClips 获取多边形?

    我有一个动作脚本 可以读取 swf 并浏览其中的影片剪辑 影片剪辑应该是简单的形状 我想将这些影片剪辑中的数据转换为多边形 换句话说 我想要一系列代表影片剪辑上的形状的坐标 没有简单的方法可以做到这一点 将形状绘制到舞台上后 您可以访问的唯
  • OSX/Linux,减慢终端的输出[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我正在打印一个长文本文件 该文件在屏幕上滚动得非常快 有没有办法减慢滚动速度 换句话说 是否有一个系统设置可以控制输出显示到屏幕上的速度 OSX Li
  • 如何解析方法声明?

    我正在尝试解析方法声明 基本上我需要获取接收者基本类型的语法节点 type hello 和返回类型 notype and error The ast包看起来很简单 但由于某种原因我没有得到我需要的数据 即字段报告为零 唯一有用的数据似乎仅在
  • OSX 上的 JavaFX 屏幕捕获无头异常

    我正在将旧的 java 应用程序从 swing 转换为 javafx 但遇到了问题 我使用以下代码来捕获屏幕截图 public ScreenCapper ge GraphicsEnvironment getLocalGraphicsEnvi
  • HtmlUnit 和片段标识

    我目前想知道如何处理片段标识 我想要从中获取信息的链接包含片段标识 看起来 HtmlUnit 正在丢弃我的 url 的 db4mj 因此加载原始 url 有谁知道处理片段身份的方法吗 如果需要 我可以发布示例代码来进一步解释 EDIT 由于
  • 在 Redux Thunk 中使用 getState 是一个好的实践吗?

    我在其他问题中看到了关于是否使用的相互矛盾的 或者对我来说只是令人困惑的 答案getState在一个动作中是可以接受的 也可以是不可以接受的 我已经好几次看到它被称为反模式 对我来说 它似乎工作得很好 但如果我们不使用的话 这样做的最佳实践
  • 如何在 Java AWT 和/或 Swing 中更改光标图像?

    I m making a simple graphics editor i e a paint program I am not planning on anything fancy but I do want my program to