检测 Swing 中单击生成的 MouseEvent 上的 Shift 修饰符

2024-03-08

我正在使用 Java Swing 处理 GUI 应用程序中的一些 MouseEvent。

从现在开始我正在分析 mousePressed 方法中的鼠标事件,只是为了确定是否 发生左键或右键单击。

我的代码是:

public void mousePressed(MouseEvent me) {
    if (me.getModifiers == InputEvent.BUTTON1_DOWN_MASK){
     //left click
    }else if (me.getModifiers == InputEvent.BUTTON3_DOWN_MASK){
     //right click
     }

现在我的应用程序变得更加复杂,我还需要检查鼠标左键单击时是否按下了 Shift 按钮。 我想做这样的事情:

public void mousePressed(MouseEvent me) {
    if (me.getModifiers == InputEvent.BUTTON1_DOWN_MASK && me.isShiftDown()){
     //left click
    }

现在这行不通了。特别是如果我在按住 SHIFT 的同时单击左侧按钮 isShiftDown 返回 true (正确。我期待如此),但现在似乎修饰符也发生了更改,并且与 BUTTON1_DOWN_MASK 的比较失败。

me.getModifiers == InputEvent.BUTTON1_DOWN_MASK //failed..modifiers are changed

我究竟做错了什么?我该如何修复我的代码?


请注意,该方法称为 getModifier_s_(),带有“s”,因为它可以返回多个修饰符,并使用按位“或”组合。从技术上讲,使用“==”永远是不正确的:您应该使用按位“&”,如下所示:

if ((me.getModifiers() & InputEvent.BUTTON1_DOWN_MASK) != 0) ...

那么即使存在其他修饰符,您也会对该修饰符做出反应。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检测 Swing 中单击生成的 MouseEvent 上的 Shift 修饰符 的相关文章

  • 寻找下一个素数的最佳方法(Java)

    我被要求编写一个程序以最佳方式找到下一个素数 我编写了这段代码 但找不到最佳答案 有什么建议么 public static int nextPrime int input input now find if the number is pr
  • 将 Spring 的 @Scheduled 注解与特定执行器一起使用

    如何告诉我的 Spring 计划方法使用特定的执行器运行 例如 这是我的 spring 调度程序方法之一 Scheduled fixedRate 1000 public void scheduleJobs doThese 这是我的 Java
  • 通过 Java Spring 构建 sitemap.xml [重复]

    这个问题在这里已经有答案了 我正在通过 Spring MVC 构建 sitemap xml XmlRootElement name urlset public class XmlUrlSet XmlElements XmlElement n
  • android OpenGl 如何绘制一个矩形

    我想用OpenGL画一个矩形 package jnidemo example com openglsquare import android content Context import android opengl GLSurfaceVi
  • 解析器解析 SQL 查询并返回 Java 中的列名和相应的表名 [重复]

    这个问题在这里已经有答案了 可能的重复 Java 的 SQL 解析器库 https stackoverflow com questions 660609 sql parser library for java 我需要一个解析器 它应该以以下
  • 谷歌地图返回空指针异常

    当我尝试在片段上显示地图时 它返回空指针异常 我已将所有内容添加到清单中的每个权限中 我正在附加片段文件 XML 文件和日志目录 Chatffragment java public class ChatFragment extends Fr
  • android listviews:页眉和页脚视图

    在我的 ListActivity 中 我需要页眉和页脚视图 位于列表的顶部和底部 分别用作列表上的上一页和下一页按钮 因为我只想一次仅显示 20 个项目 我通过执行以下操作来设置头视图和脚视图 getListView addHeaderVi
  • 异步方法的默认 EJB 事务模式?

    当我有一个 AsynchronousEJB 中的方法 并且我没有指定 TransactionAttribute 那么容器到底是如何处理事务边界的呢 显然 它不能使用调用线程的事务 那么它是做什么的呢 同样的问题 但涉及由 TimerServ
  • 在手机上单步执行 Android 代码 - 大行号差异

    我正在尝试调试与 Samsung Captivate Galaxy S 上的 ListView 相关的一些代码 我在代码中的某个位置放置了断点 当它停止时 我会在堆栈上返回几帧到 ListView 源 现在 我可以预期会出现一些不匹配的情况
  • 如何按照最初给出的时区存储和显示日期?

    我有一台服务器正在从不同时区的客户端提供数据 数据源包含人物 他们的出生日期和其他事件日期 出于我们的目的 如果我们可以将日期存储为给我们的日期 那就很方便了 例如 如果客户位于加利福尼亚州 并且告诉我们该人的出生日期是 5 月 31 日
  • SAP Spartacus 表单个性化

    如果已经有使用给定电子邮件注册的帐户 我需要修改注册表以显示错误消息 SAP Hybris 后端 Angular 中的 Spartacus 店面 目前 我有一个自定义验证器类 它可以正常工作 import org springframewo
  • 什么是对象发布以及为什么我们需要它?

    在一次 Java 开发人员面试中 我被问到一个问题 什么是对象发布以及为什么我们需要它 我不确定我知道正确的答案 我认为对象发布是指将对象 变量 状态放入堆内存中 线程之间共享对象 变量 需要它 我对吗 如果我错了 请纠正我 我一直在搜索
  • 如何模拟类路径上属性文件的存在?

    这肯定是一个常见问题 我有一个像这样的属性文件my settings properties由应用程序类读取 当我编写测试类时 它需要测试可能存在的不同场景my settings properties为了确保最大的代码覆盖率 例如空属性文件
  • 在抽象类上使用 Lombok @SuperBuilder 注释和 toBuilder ?

    我有以下课程 SuperBuilder toBuilder true public abstract class Parent SuperBuilder toBuilder true public class Child extends P
  • 如何将报告导出为 PDF/A-1a、PDF/A-1b?

    在 jasper report 中生成 PDF A 包含许多陷阱 并且某些版本的 jasper report 不支持 这就是为什么我决定通过这个Question Answer 帖子 指示将带有图表的简单报告导出为 PDF A 所需的步骤和库
  • Android:从http获取文件并存储在SDCard中

    我已经遵循了许多类似问题中所写的内容 但仍然存在问题 从jsp我得到一个pdf 如果我转到URL 浏览器会自动打开pdf jsp页面会执行类似以下操作 Gets the pdf from the database BufferedInput
  • 如何用 JSON 表示数据库中的图像

    我需要基于数据库中的 blob 创建 JSON 为了获取 blob 图像 我使用下面的代码并在 json 数组中显示之后 Statement s connection createStatement ResultSet r s execut
  • Java ReentrantReadWriteLocks - 如何在读锁中安全地获取写锁?

    我现在在我的代码中使用可重入读写锁 http java sun com javase 6 docs api java util concurrent locks ReentrantReadWriteLock html同步对树状结构的访问 这
  • 根据 netbeans 中的单选按钮切换组件的“启用”属性

    我在按钮组中有两个单选按钮 在同一面板中我有一个文本框和一个按钮 我想仅在选择第二个按钮时启用文本框和按钮 并在选择另一个单选按钮时禁用文本框和按钮 我已经尝试过这个但没有成功 private void radio button2Actio
  • 整个程序可以是不可变的吗? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我熟悉不可变性并且可以设计不可变类 但我主要拥有学术知识 缺乏实践经验 请参考上面的链接图片 尚不允许嵌入 从下往上看 学生需要新地址

随机推荐

  • 如何将 XMLGregorianCalendar 与仅日期部分(日、月、年)进行比较?

    我正在开发一个与 spring struts Web 应用程序集成的 Web 服务 在 XSD 中有一个 XMLGregorianCalendar 类型属性 假设属性名称是trxDate 在 SOAPUI 测试应用程序中 如果我使用以下命令
  • Java:使用 Bouncy Castle 进行 PGP 加密

    我正在尝试使用 PGP 实现加密 并且我的加密方法成功加密了输入字符串 但是当我尝试解密它以验证加密是否正确完成时 该字符串不会被解密 我尝试了两种方法 第一种方法使用文件输出流编写加密字符串和第二种方法使用字节数组输出流 文件输出流创建一
  • Angular 2 + RxJS:带有 .share() 运算符的异步管道

    当使用async管道上的可观察对象正在使用 share 运算符 由于后端计算成本高昂 我偶然发现了这种行为 data new Observable observer gt let counter 0 observer next counte
  • Angular UI Bootstrap Popover 添加关闭按钮

    我有以下弹出窗口 并尝试添加一个关闭按钮以将其关闭 directive popoverHtmlUnsafePopup function use strict return restrict EA replace true scope tit
  • libvirt 和 VirtualBox / 入门

    我正在尝试使用 VirtualBox 作为虚拟化解决方案来开始使用 libvirt 我安装了所有内容 并且 VirtualBox 本身在使用 VBoxHeadless 命令时正在运行 但是 libvirt 无法连接到 VirtualBox
  • 运行“docker build”时不会反映对我的 dockerfile 的更改

    Docker 初学者在这里 我正在尝试通过调用来构建 docker 映像docker build t my image 并对失败的行进行 dockerfile 更改 我目前在这一行遇到问题 RUN apt get install qy lo
  • Spring MVC:不反序列化 JSON 请求正文

    我正在开发一个 Spring MVC 项目 我需要做的任务之一要求我拥有用户在 POST 请求中发送的一串 JSON 数据 我知道 Spring 会使用 Jackson 将 JSON 反序列化为对象 但是如果我尝试如下操作 RequestM
  • 了解 SQL Server 中的锁定行为

    我尝试重现问题 1 的情况 在桌子上 获取并填充了来自 wiki 的 隔离 数据库系统 2 的数据 在 SQL Server 2008 R2 SSMS 中 我执行了 1 首先在SSMS的第一个选项卡 窗口 中 transaction iso
  • .ico 的理想大小

    位于窗口顶角的 ico 文件的理想大小是多少 简短回答 16 x 16 像素 长答案 ico 文件实际上可以包含多种颜色深度的多个图像 您可以在单个文件中提供 16x16 32x32 48x48 和 64x64 操作系统将选择最好的一个进行
  • 使用sql查询将字符串转换为int

    如何在 SQL Server 2005 上使用 SQL 查询将字符串转换为整数 你可以使用投射或转换 http msdn microsoft com en us library ms187928 SQL 90 aspx SELECT CAS
  • 将数据属性传递给模态引导程序

    a class my link href modal link a 我有这个链接来打开引导模式 但我需要传递数据属性 data val 我尝试使用 javascript 但没有得到它 你能帮我么 您可以收听show bs modal模式上的
  • 如何在 Asp.Net MVC 中使用属性路由为操作生成 URL

    public class HomeController Controller Route Users about Route Users WhoareWe Route Users OurTeam Route Users aboutCompa
  • Java Fx 将场景大小调整为舞台

    我进行了搜索 但找不到任何与我在 Fx 中遇到的问题相近的内容 我正在使用 Java Fx JDK 8 并且在调整场景大小时遇到 问题 下面的代码在场景图中一次仅加载一个屏幕 并在屏幕之间切换 问题是当我调整舞台大小时 场景没有随舞台调整大
  • Nexus S 上的 OpenGL ES 黑色纹理

    在 Nexus One 上运行的 OpenGL 代码在 Nexus S 上无法正常运行 纹理似乎没有渲染 纹理应该在的地方只剩下黑色 有人有什么想法吗 The 此处给出的已接受答案 https stackoverflow com quest
  • 第二次绑定源时Datagridview完全隐藏

    private void populateListingGrid try Dictionary
  • Kafka Streams 应用程序无尽的重新平衡

    我们正在运行一个卡夫卡流应用程序并遇到一个奇怪的问题 我们正在使用全局状态存储和多个其他状态存储 我们的应用程序已加载所有数据 状态存储中现在有大量信息 现在 当我们尝试关闭应用程序并再次将其恢复 一些配置更改 时 它会进入无休止的重新平衡
  • Matlab 从命名管道(fifo)读取

    我在 Linux 下的 matlab 中读取命名管道 fifo 时遇到问题 管道上的 textread 始终返回 空矩阵 0 1 textread 会阻塞 直到数据写入管道 如果我使用 fopen 和 fscanf 那么 fopen 将阻塞
  • Bootstrap 3列类干扰jquery-ui droppable div

    我使用 jQuery UI v1 11 2 来创建一些可拖动和可放置的 div 以及 Boostrap 3 1 1 我想知道为什么 Bootstrap 列类会干扰可拖动的 提示 换句话说 当我将图像从图库 div 拖到仪表板 div 时 仪
  • httpRuntime shutdownTimeout 和 IIS 设置

    我在 ASP Net 中遇到了一个问题 在任何 Web 应用程序配置 Web config 文件中 都有一个名为 httpRuntime 的部分 它有一个属性 shutdownTimeout 根据 MSDN 文档 该属性指定在 ASP Ne
  • 检测 Swing 中单击生成的 MouseEvent 上的 Shift 修饰符

    我正在使用 Java Swing 处理 GUI 应用程序中的一些 MouseEvent 从现在开始我正在分析 mousePressed 方法中的鼠标事件 只是为了确定是否 发生左键或右键单击 我的代码是 public void mouseP