问题标签 [glasspane]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 添加 glasspane 为任何组件调用 getMousePosition() 返回 null
我已经编写了一个自定义 glasspane 组件并将其设置为我的JFrame
和JDialog
类。我不拦截自定义玻璃窗格中的鼠标事件,因为我不需要,而且因为 GUI 上有许多组件,例如树、弹出窗口等,这使得拦截和转发鼠标事件变得复杂。一切正常 - 除了每当我在框架/对话框中调用getMousePosition()
任何其他组件(例如)时,它都会返回。JPanel
null
在我的JFrame
课堂JDialog
上,我已将玻璃窗格设置为disabled
(but visible
),并且它在大多数情况下都有效。我需要做什么才能使该getMousePosition()
方法返回正确的值,而无需将鼠标事件侦听器添加到 glasspane 组件。
演示问题的示例代码。
如果您注释掉与将玻璃窗格添加到框架有关的 3 行,则鼠标位置点将正确打印出来。这是一个说明问题的简单示例,我在上面已经说过,我不想将鼠标侦听器添加到自定义 glasspane 组件,因为它会引入其他复杂性。
java - GlassPane 正确调度鼠标事件
我正在使用 GlassPane 移动框架中的元素。当没有元素被拖动时,所有鼠标事件都以正常方式调度
但这会导致鼠标事件处理中的异常行为。例如:我有一个带有鼠标侦听器的 JPanel。双击此面板会打开另一个框架。在这个面板上有一些标签。当没有 Glasspane 时,我可以单击此标签,并且由于标签不会作用于鼠标事件,因此将事件传递到面板并完成单击操作。当我使用我的分派例程时,我将鼠标事件直接分派给标签,这当然不会导致任何操作。
那么我该如何解决这个问题呢?当然,我可以创建自己的标签类并引用它的 Panel 并将鼠标事件再次发送到面板,但这看起来不是一个好的设计。第二个虽然是,我可以在 Glasspane 调度程序中确定,如果最深的面板对鼠标事件感兴趣,如果没有,加紧更高或类似的东西?
有任何想法吗?
java - 单击“下一步”时显示等待光标 - Netbeans WizardDescriptor
我有一个带有几个 PanelDescriptor 的向导迭代器。当在一个实现 WizardDescriptor.ValidatingPanel 的 PanelDescriptor 上单击“下一步”时,我试图显示等待光标。其中的 validate() 方法需要时间执行。
到目前为止,我尝试了几种方法,它们都不适合我。
- http://dev.platform.netbeans.narkive.com/ofiffInN/finally-a-waitcursor-routine-that-works-in-netbeans
http://netbeans-org.1045718.n5.nabble.com/Setting-wait-cursor-td3026613.html#a3026614
/li>- /li>
任何能指出我正确方向的提示都将不胜感激。
java - 如何将鼠标事件委托给 JavaFX 中的所有底层重叠窗格?
我有一些顶部装饰窗格,我想处理/预处理鼠标事件,但不应该消耗它们,即所有重叠的窗格都应该像装饰窗格没有重叠一样工作。
这个怎么做?我几次尝试都失败了。
下面是带有 3 个窗格的代码。绿色一是“装饰”。任务是使其对鼠标事件透明。黄色和蓝色窗格是工作窗格。它们应该像没有被绿色窗格重叠一样工作。
但是绿色窗格仍然应该接收鼠标事件。
注释行表示我尝试的内容,注释说明出现的错误:
java - Java 通过 JFrame.GlassPane 捕获 DOM “mousedown”事件
在 SVG 画布上方有一个 GlassPane,我可以将 MouseEvents 传输到 SVG 画布:
但我无法传输其他事件,例如 SVG 节点注册的事件:
这与事件冒泡有关吗?
java - Jframe - 绘制矩形不起作用
我有这段代码,旨在在预加载的图像上绘制一个矩形,但它不起作用。
当我将绘图类添加到框架时,它会覆盖图像,这意味着我看不到我预加载的图像,但它仍然允许我绘制矩形。
另外,不是将jframe放在我的屏幕中间,而是将它放在右上角,我必须最大化它才能看到框架。
编码:
}
任何人都可以帮忙吗?我基本上是在尝试从绘制的矩形中获取 2d Rectangle 坐标(根据系统 out getbounds2d)。
如果您删除 frame.add(new paintRectangles());,您可以看到框架的外观(但无法绘制矩形)
java - Swing:GlassPane 和自定义绘制的半透明按钮
我的应用程序左侧有一个简短的工具栏。当用户指向此工具栏时,我会打开一个半透明的完整工具栏(我曾经GlassPane
这样做过)。除了半透明之外的所有东西都可以正常工作。
这是我的示例程序的屏幕截图:
如您所见,第一个按钮绘制正确,但所有其他按钮都具有完全透明的背景。
这是我的代码(SSCCE):
我的 JDK 是:1.8_91,操作系统:Windows 7
我的问题是:我应该怎么做才能正确绘制所有按钮?
PS 在实际应用程序中,我为左侧工具栏中的所有按钮提供了自定义 UI,因此请不要删除我的按钮的 UI。
更新
我再次启动了该应用程序(没有任何更改)并遇到了另一个错误
这是新图片:
应该是我显卡的bug吧?
layer - Gluon mobile 5层不隐藏
我创建了一个繁忙的图层,在后台 IO 繁忙时显示动画进度指示器。该层被添加到 Gluon mobile 4 中的玻璃窗格中:
在 Gluon 5 中,getLayers 已被删除,根据迁移指南,可以直接显示层:
但是该层没有隐藏。
====
主要播放器是一个单例背景类,因此 BusyLayer 只显示一次:
像这样使用 CompletableFutures 执行异步任务的代码:
当然还有 BusyLayer 本身:
}
java - 单击按钮时显示叠加层,使用 Swing 执行操作时再次消失
我想在单击按钮时在我的 JFrame 顶部显示一个带有加载描述或微调器的不透明叠加层,并在执行操作后再次消失。我已经阅读了 Glass Pane,但我无法理解在带有按钮的操作执行功能下执行此操作的正确方法。有没有办法使用 Java 和 Swing 做到这一点?顺便说一下,这是我现在的 JFrame ......