问题标签 [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 投票
2 回答
675 浏览

java - 重绘后玻璃板消失

我的玻璃板有问题。当我第一次展示我的面板时,一切都很好。但是当我想重新粉刷这个面板时,因为组件应该改变(方法createPanel())然后玻璃面板消失。当我调整框架大小时,它再次可见。我不知道为什么会发生这种情况,我的面板看起来像:

当我在方法中添加一行时createPanel()

然后它就像一个魅力。有人可以向我解释这种行为吗?

0 投票
1 回答
124 浏览

java - GlassPane 上的图标未正确设置

当输入与我期望的用户不同时,我有一个类在 textField 后面设置警告图标。对于文本字段,此类工作完美,但是当我尝试将其与 textArea 一起使用时,警告图标未设置在正确的位置。

这是设置和删除警告图标的类:

我发现 textArea 的 getY() 函数总是返回 0,但我找不到为什么它总是返回 0。这是调用 ClaxxValidationPane 类的代码:

因此焦点侦听器将调用验证,并调用 classValidaionPane。如果它被调用,那么它会出错(但仅适用于 textArea 而不是 textField)有人可以帮我解决这个问题吗?

0 投票
1 回答
311 浏览

java - 摆动 - 交换和隐藏玻璃窗格不起作用 - 玻璃窗格仍然可见

我正在尝试构建一个 Swing 应用程序,如果没有用户登录,则将登录面板显示为玻璃窗格。如果我尝试隐藏到登录玻璃窗格,它仍然可见,但不会对任何用户交互作出反应。

你看到这里有什么问题吗?

0 投票
1 回答
932 浏览

java - JFrame Glasspane 也在 JDialog 之上,但不应该

我有一个带有 Glasspane 的 JFrame(未装饰)。此框架打开一个 JDialog(也未装饰,也有一个 glassPane)并隐藏自身(setVisible(false))。Glasspanes 使用 .setGlassPane() 设置。对话框以 Frame 作为所有者打开。

GlassPane 扩展了 JPanel 并实现了 AWTEventListener。我用它来调整框架和对话框的大小,所以它知道它是父级(框架/对话框)——这被称为“目标”。

GlassPane 中的事件是这样处理的:

在“target.getLocationOnScree”处,当 JFrame 被隐藏并单击 JDialog 时,我得到一个 IllegalComponentStateException。它说“组件必须显示在屏幕上才能确定其位置”。这是因为 JFrame 的 GlassPane 获取了事件。但是 JDialog 的 Glasspane 应该得到它。我认为,JFrame 的 Glasspane 在 JDialog 前面。但为什么?

感谢您的帮助!

编辑:

这是一个例子:

0 投票
1 回答
206 浏览

java - 如何将 JGraph 转换为玻璃窗格?

我有一堂课:public class GraphEditorPane extends JGraph

我正在使用这个“GraphEditorPane”,如下所示:

我正在使用此“GraphEditorPane”在其上绘制图形。现在我的问题是 - 有什么方法可以将此 JGraph 转换为 Glass Pane,以便我的 'GraphEditorPane' 是透明的并且我仍然可以在它上面绘制?

0 投票
1 回答
2822 浏览

java - 为什么在没有显式 repaint() 调用的情况下连续和异步调用paintComponent()?

所以这个问题有两个部分,我认为可能是相关的,而且大多是抽象的。简而言之,这就是我正在做的事情:

我有一个JFrame带 aJPanel和一些child JPanels每个都有 3JButtons的。我还为 (ie ) 创建了一个JComponent调用,它允许我在 JPanel 和按钮上进行绘制。glassPanelJFramemyJFrame.setGlassPane(glassPanel)

(1) 基本上是通过单击 a 上的所有 3 个按钮触发的JPanelglassPanel设置为Visible(然后似乎调用paintComponent())。这与第一个问题有关。

(2) 在paintComponent()我使用双缓冲区绘制和绘制矩形和图像到glassPanel. 这与第二个问题有关。

这是我相关的 GlassPanel 类代码(这不是 SSCCE,因为它现在是一个抽象问题):

System.out.print通过在 paintComponent() 方法中放置一个语句,我可以看出它被连续调用并且也是异步调用的。关于我认为调用的方式,请参见(1)。另外,假设我绝对确定repaint()代码中的任何地方都没有调用(我已经检查了很多次)。这是第一个问题的基础。

我第一次单击 3 个按钮时,一切顺利。矩形和图像都立即绘制。但是,当我单击接下来的 3 个按钮时(此时,glassPanel已经是setVisible(true)并且第一个矩形和图像仍在屏幕上,绘制在前 3 个按钮上),第二个矩形和图像仅部分加载JFrame当我在运行程序的 Eclipse 窗口上单击并离开时,paintComponent()每次调用的次数都会快速增加相同的数量,并且部分加载的图像和矩形会立即完全显示在后台JFrame。当我单击返回 JFrame 时,调用次数又增加了一个确切的数量)。这是第二个问题的基础。

更新:是我读到的东西:

此外,当 GUI 被另一个窗口覆盖然后变得未覆盖时,绘画系统调用 paintComponent 方法,绘画区域等于新未覆盖的区域。

我的问题是:

(1) 为什么paintComponent()没有 a 可能会被称为这么多repaint()?或者,一个类似的问题,什么可能调用paintComponent()?

更新:在做了一些数学运算之后,我坚信每个组件(所有按钮和面板)都会连续调用它。但是,仍然没有调用 repaint()...

(2) 为什么在我从 JFrame 窗口获得焦点之前,图像会部分加载?

请注意,我已经尝试了很多事情:(a)创建我自己的 doubleBuffer 并且不使用双缓冲区(我知道它主要用于动画),(b)覆盖而不是覆盖paintComponent(),(c)绘制而不是绘制图像(矩形仍然加载需要时间),(d)绝对确定没有repaint(),(e)使用和不使用SwingUtilities.invokeLater(new Runnable() { public void run() { //stuff});,(f)if只做了一次 setVisible(true) 的声明。

如果必须,我可以尝试通过 SSCCE,但我确实认为这些更抽象。谢谢!

0 投票
1 回答
250 浏览

c# - WPF 的 Java 玻璃窗格 (C#.NET)

我正在 C#.NET 中构建一个 WPF 应用程序,如果条件为真,我想将窗口变灰并在中心显示一个 StackPanel,就像 Java 中的玻璃窗格一样。我将出售我的应用程序,因此我不希望它必须附带另一个许可证,它确实需要是免费的。

有什么代码可以让我这样做吗?

0 投票
1 回答
133 浏览

java - 在线程进行额外处理之前和之后重新绘制玻璃窗格

我正在尝试使用玻璃窗格使框架变灰,而单独的线程执行一些图像处理(img proc)。img proc 线程完成后,玻璃窗格应该再次不可见。我已经确认玻璃窗格运行正常,但在 img proc 线程(它确实按预期执行等待和通知工作)开始之前不会发生重新绘制。这是我所拥有的:

GlassPane班级:

在构建框架的组件时:

在按钮的动作监听器中:

地点ctrlr.grayOut()和地点ctrlr.showFull()

我已经在 AWT 和 Swing以及执行此类操作的其他线程中阅读了很多此绘画。在我看来,我正在做与那些成功的人一样的事情......我是否缺少一些微妙的东西?

0 投票
0 回答
99 浏览

java - 当玻璃窗格出现时,java gridbaglayout 位置被破坏

我在我的应用程序中使用透明玻璃板作为装载机。当我将 glasspane 设置为可见时,我在 glasspane 下的 jcomponents 位置被破坏。

有人可以帮我吗?

问候

玻璃板隐藏

玻璃板显示

0 投票
1 回答
283 浏览

java - 布局管理器和定位

  • 如何在不使用 ComponentListener 或其他侦听器的情况下将 GlassPane 中的 JLabel 粘贴到来自 JProgressBar 的相对浮动坐标,

  • 标准 LayoutManagers 中是否有内置通知器可以通知其内部状态,并且可以覆盖,而不是我尝试使用 ComponentListener 和 NullLayout

在此处输入图像描述

.

在此处输入图像描述

SSCCE 关于ComponentListener和与NullLayout