问题标签 [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.

0 投票
0 回答
116 浏览

java - 添加 glasspane 为任何组件调用 getMousePosition() 返回 null

我已经编写了一个自定义 glasspane 组件并将其设置为我的JFrameJDialog类。我不拦截自定义玻璃窗格中的鼠标事件,因为我不需要,而且因为 GUI 上有许多组件,例如树、弹出窗口等,这使得拦截和转发鼠标事件变得复杂。一切正常 - 除了每当我在框架/对话框中调用getMousePosition()任何其他组件(例如)时,它都会返回。JPanelnull

在我的JFrame课堂JDialog上,我已将玻璃窗格设置为disabled(but visible),并且它在大多数情况下都有效。我需要做什么才能使该getMousePosition()方法返回正确的值,而无需将鼠标事件侦听器添加到 glasspane 组件。

演示问题的示例代码。

如果您注释掉与将玻璃窗格添加到框架有关的 3 行,则鼠标位置点将正确打印出来。这是一个说明问题的简单示例,我在上面已经说过,我不想将鼠标侦听器添加到自定义 glasspane 组件,因为它会引入其他复杂性。

0 投票
0 回答
452 浏览

java - GlassPane 正确调度鼠标事件

我正在使用 GlassPane 移动框架中的元素。当没有元素被拖动时,所有鼠标事件都以正常方式调度

但这会导致鼠标事件处理中的异常行为。例如:我有一个带有鼠标侦听器的 JPanel。双击此面板会打开另一个框架。在这个面板上有一些标签。当没有 Glasspane 时,我可以单击此标签,并且由于标签不会作用于鼠标事件,因此将事件传递到面板并完成单击操作。当我使用我的分派例程时,我将鼠标事件直接分派给标签,这当然不会导致任何操作。

那么我该如何解决这个问题呢?当然,我可以创建自己的标签类并引用它的 Panel 并将鼠标事件再次发送到面板,但这看起来不是一个好的设计。第二个虽然是,我可以在 Glasspane 调度程序中确定,如果最深的面板对鼠标事件感兴趣,如果没有,加紧更高或类似的东西?

有任何想法吗?

0 投票
1 回答
229 浏览

java - 单击“下一步”时显示等待光标 - Netbeans WizardDescriptor

我有一个带有几个 PanelDescriptor 的向导迭代器。当在一个实现 WizardDescriptor.ValidatingPanel 的 PanelDescriptor 上单击“下一步”时,我试图显示等待光标。其中的 validate() 方法需要时间执行。

到目前为止,我尝试了几种方法,它们都不适合我。

  1. http://dev.platform.netbeans.narkive.com/ofiffInN/finally-a-waitcursor-routine-that-works-in-netbeans
  2. http://netbeans-org.1045718.n5.nabble.com/Setting-wait-cursor-td3026613.html#a3026614

    /li>
  3. https://community.oracle.com/message/5322657#5322657

    /li>

任何能指出我正确方向的提示都将不胜感激。

0 投票
1 回答
1034 浏览

java - 如何将鼠标事件委托给 JavaFX 中的所有底层重叠窗格?

我有一些顶部装饰窗格,我想处理/预处理鼠标事件,但不应该消耗它们,即所有重叠的窗格都应该像装饰窗格没有重叠一样工作。

这个怎么做?我几次尝试都失败了。

下面是带有 3 个窗格的代码。绿色一是“装饰”。任务是使其对鼠标事件透明。黄色和蓝色窗格是工作窗格。它们应该像没有被绿色窗格重叠一样工作。

但是绿色窗格仍然应该接收鼠标事件。

注释行表示我尝试的内容,注释说明出现的错误:

0 投票
0 回答
64 浏览

java - Java 通过 JFrame.GlassPane 捕获 DOM “mousedown”事件

在 SVG 画布上方有一个 GlassPane,我可以将 MouseEvents 传输到 SVG 画布:

但我无法传输其他事件,例如 SVG 节点注册的事件:

这与事件冒泡有关吗?

0 投票
2 回答
448 浏览

java - Jframe - 绘制矩形不起作用

我有这段代码,旨在在预加载的图像上绘制一个矩形,但它不起作用。

当我将绘图类添加到框架时,它会覆盖图像,这意味着我看不到我预加载的图像,但它仍然允许我绘制矩形。

另外,不是将jframe放在我的屏幕中间,而是将它放在右上角,我必须最大化它才能看到框架。

编码:

}

任何人都可以帮忙吗?我基本上是在尝试从绘制的矩形中获取 2d Rectangle 坐标(根据系统 out getbounds2d)。

如果您删除 frame.add(new paintRectangles());,您可以看到框架的外观(但无法绘制矩形)

0 投票
0 回答
126 浏览

java - Swing:GlassPane 和自定义绘制的半透明按钮

我的应用程序左侧有一个简短的工具栏。当用户指向此工具栏时,我会打开一个半透明的完整工具栏(我曾经GlassPane这样做过)。除了半透明之外的所有东西都可以正常工作。

这是我的示例程序的屏幕截图:

我的示例应用程序屏幕

如您所见,第一个按钮绘制正确,但所有其他按钮都具有完全透明的背景。

这是我的代码(SSCCE):

我的 JDK 是:1.8_91,操作系统:Windows 7

我的问题是:我应该怎么做才能正确绘制所有按钮?

PS 在实际应用程序中,我为左侧工具栏中的所有按钮提供了自定义 UI,因此请不要删除我的按钮的 UI。

更新

我再次启动了该应用程序(没有任何更改)并遇到了另一个错误

这是新图片:

另一个错误

应该是我显卡的bug吧?

0 投票
1 回答
146 浏览

layer - Gluon mobile 5层不隐藏

我创建了一个繁忙的图层,在后台 IO 繁忙时显示动画进度指示器。该层被添加到 Gluon mobile 4 中的玻璃窗格中:

在 Gluon 5 中,getLayers 已被删除,根据迁移指南,可以直接显示层:

但是该层没有隐藏。

====

主要播放器是一个单例背景类,因此 BusyLayer 只显示一次:

像这样使用 CompletableFutures 执行异步任务的代码:

当然还有 BusyLayer 本身:

}

0 投票
2 回答
254 浏览

java - 单击按钮时显示叠加层,使用 Swing 执行操作时再次消失

我想在单击按钮时在我的 JFrame 顶部显示一个带有加载描述或微调器的不透明叠加层,并在执行操作后再次消失。我已经阅读了 Glass Pane,但我无法理解在带有按钮的操作执行功能下执行此操作的正确方法。有没有办法使用 Java 和 Swing 做到这一点?顺便说一下,这是我现在的 JFrame ......

0 投票
1 回答
39 浏览

java - 在 Glasspane 前面显示 InternalFrame

我希望在 GlassPane 前面显示一个 InternalFrame。在我的程序中,用户应该能够点击 FILE -> Settings 并且应该显示一个 InternalFrame。背景中的所有内容都应该用 GlassPane 覆盖。有人有想法吗?

玻璃板