Java JPanel 鼠标侦听器对其组件不起作用

2024-01-26

这个问题的解决办法是什么?

我向 JPanel 添加了一个鼠标侦听器,但该面板充满了覆盖 JPanel 整个区域的按钮。

示例(伪)代码:

Create JPanel
Set to GridLayout
Add 25 buttons (5x5 grid)
Add MouseListener to JPanel

鼠标监听器/鼠标运动监听器:

onMouseMove { print out X,Y co-ords of mouse }

在我到达 JPanel 容器的边缘之前,坐标永远不会打印出来,因为按钮挡住了它的其余部分。

如何使鼠标侦听器在面板的所有组件上工作,而不必将侦听器添加到每个组件 - 或者我应该将侦听器添加到每个组件?

补充信息:我正在尝试为触摸屏系统添加触摸手势(滑动面板会导致发生操作)。 我对自己识别手势非常有信心,但我确实在寻找一种“更好”的方法,而不是向每个组件添加侦听器的副本(这对我来说更糟糕,因为组件正在发生变化)。

我将尝试将其添加到 glassPane 中...(目前 getRootPane() 给了我 NullPointerException)

EDIT:我现在知道我正在尝试从不是根容器的 JPanel 获取 getRootPane() ,这就是为什么我得到一个null。我需要在主 JFrame 上执行此操作。

EDIT2:好的,我已经这样做了(在主 JFrame 中添加了玻璃窗格),起初我遇到了问题,因为我没有这样做:

myGlassPane.setVisible(true);

所以看起来它不起作用。但是一旦我这样做了,我所要做的就是将不透明标志设置为 false 以使其透明

myGlassPane.setOpaque(false);

所以现在我在按钮和所有东西上打印出 X、Y 坐标,但是按钮不起作用,因为它们上面有一个面板。


将侦听器添加到面板和按钮。

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

Java JPanel 鼠标侦听器对其组件不起作用 的相关文章

随机推荐

  • 路由在 kubernetes 中无法使用 calico 工作

    I have kubernetes v1 6 0 由 kubeadm v1 6 1 设置 官方设置的 calicoyaml http docs projectcalico org v2 1 getting started kubernete
  • 如何在没有“未经检查”警告的情况下转换为(已知)泛型类型?

    我有这两个接口 public interface Event default void dispatch EventBus getInstance dispatch this public interface EventListener
  • NERDTree 自动加载特定目录

    我在 Windows 中使用 gvim 默认情况下 nerdtree 默认加载 C 驱动器 我想将其更改为 E 驱动器 如何实现这一点 每当我尝试使用 NERDTree 命令启动 NERDTree 时 都会收到此错误E492 Not an
  • 在内存中存储张量流模型

    我正在编写的程序涉及在运行时在模型之间进行切换 我当前正在使用 Saver 从磁盘保存 加载模型 如下所示 https www tensorflow org api docs python state ops saving and rest
  • VS Xamarin无法生成IPA文件

    我曾经将配置设置为 Release iPhone Remote Device 但是远程设备不再显示 只剩下本地设备 有谁知道有相关的设置吗 多谢 更新到 Visual Studio 16 11 3 远程设备 选项已恢复 看发行说明 http
  • 谷歌地图 API 风格的地图与卫星水

    我正在使用谷歌地图 API V3 创建一个样式化的地图 其中我使用自定义颜色 我想知道是否可以在使用陆地上的自定义样式的同时使用水域的卫星图像 IE 我希望水是卫星图像 而土地是自定义的纯色 现在我可以为土地和水提供自定义颜色 但我想知道是
  • 如何限制子类修改抽象类中方法的范围?

    如何限制抽象类的实现类将方法的范围从 protected 修改为 public 例如 假设我有一个抽象类 package com rao test public abstract class AbstractTEClass protecte
  • RISC-V 中的旋转位

    嘿 我对 RISC V 还算陌生 我的练习题之一是 将 0x0000000000000123 的值右移 4 位 预期结果为 0x3000000000000012 即所有十六进制数字向右移动一位 而最右边的一位移动到前面 到目前为止 我了解了
  • 可以在 C++ 中缓存虚函数查找吗?

    假设我在抽象基类指针 mypointer gt foo 上有一个虚拟函数调用 foo 当我的应用程序启动时 根据文件的内容 它选择实例化特定的具体类并将 mypointer 分配给该实例 在应用程序的剩余生命周期中 mypointer 将a
  • 如何调用 rake 目标两次

    我通过修改 csproj 文件以包含额外的编译符号 从 sln 生成两组不同的 DLL 文件 我正在使用 rake 构建解决方案 并执行以下构建任务 desc Builds the DPSF sln in Release mode msbu
  • 正则表达式不匹配连字符后的数字

    我有以下内容 1 5 5 tablespoon cream 1 cup heavy cream teaspoon cream 1 tablespoon cream s d 我试图找出原因 不匹配 我在非捕获组中有一个转义的连字符 我尝试过的
  • Android 构建脚本存储库:jcenter VS mavencentral

    上次我使用Android Studio时 它生成了 gradle文件与mavencentral buildscript 存储库 而现在有jcenter 谁能解释一下与此相关的问题 还有其他回购吗 我们什么时候应该切换它们 它们对项目 模块
  • VBA XML DOM 搜索可能并不总是存在的项目

    在解析其他节点的数据时 如何为可能并不总是属于其父节点的节点创建循环 假设您有一个非常大的文件 其中包含其中几个项目 但为了简单起见 我们使用此 XML 请注意 第一个 book id 没有我们想要的节点 因此我们的循环已经失败
  • PySpark 和 MLLib:随机森林预测的类概率

    我正在尝试提取使用 PySpark 训练过的随机森林对象的类概率 但是 我在文档中没有看到它的示例 也不是一种方法RandomForestModel 我怎样才能从a中提取类别概率RandomForestModelPySpark 中的分类器
  • .htaccess 导致重定向

    你好 我在 public html ex 中有 2 个文件夹 主文件夹和子文件夹 在我的 public html 与我的 2 个文件夹相同的级别中 我有一个像这样的 htaccess 文件 RewriteEngine On RewriteC
  • 使用 Junit 进行 Android 单元测试:测试网络/蓝牙资源

    我慢慢地沉迷于单元测试 我正在尝试使用测试驱动开发来开发尽可能多的软件 我正在使用 JUnit 对我的 Android 应用程序进行单元测试 我一直在开发一个使用蓝牙的应用程序 并且很难对其进行单元测试 我有一个活动 它使用蓝牙适配器来获取
  • Jetpack Compose 查找父级宽度/长度

    我想显式检索的值fillMaxSize 假设我有 Box Modifier fillMaxSize background Color Yellow var size Box Modifier size someSize background
  • 在 jquery 移动列表中使用自定义图标

    我找到了有关使用自定义图标的文档jQuery 移动按钮 http jquerymobile com demos 1 0 docs buttons buttons icons html以及如何使用现有图标自定义列表 http jquerymo
  • 模板函数和非模板函数调用顺序

    在Linux中我得到 template max is called 但在Windows下我得到 non template max is called 为什么 在 Linux 中 我使用 gcc 4 5 在 Windows 中我使用 VS20
  • Java JPanel 鼠标侦听器对其组件不起作用

    这个问题的解决办法是什么 我向 JPanel 添加了一个鼠标侦听器 但该面板充满了覆盖 JPanel 整个区域的按钮 示例 伪 代码 Create JPanel Set to GridLayout Add 25 buttons 5x5 gr