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

java - 即使调整了 GUI 的大小,如何使 Java Glasspane 粘在某个位置?

当我调整整个界面的大小时,Java Glass 窗格会自动调整大小,但我想让它固定在特定位置,它看起来像这样:

http://i.stack.imgur.com/HajJ4.jpg

http://i.stack.imgur.com/nkpC3.jpg

当我调整它的大小时,而不是四处走动。

谢谢

0 投票
1 回答
227 浏览

java - 要让 glassPane 对 JInternalFrame 可见和有效,需要什么样的巫术?

我有一个项目JDesktopPane用于主要应用程序和一堆JInternalFrames 用于一系列独立分析。

某些分析是耗时的,因此我在SwingWorkers 上运行它们,但我想禁用 GUI(因此没有操作排队)并通知用户某些操作正在进行并且这是正常的。

以前我为此目的使用了一个定制的 GlassPane,并且它以前工作得很好。现在我遇到了一些问题,使用与以前相同的类。具体来说,glassPane 拦截了预期的用户输入,但没有可见的视觉提示,这让我认为paintComponent()从未在 glassPane 上调用过。

只是为了确保我在谷歌上搜索并遇到DisabledGlassPane了“please-wait-glassPane”概念的另一个实现(称为),但实际上没有成功。在尝试调试问题时,我意识到当我启动/激活我的 glassPane 时,默认情况下它是无效的,并且不会自行验证。

如果我在激活 glassPane 后专门调用validate()JInternalFrame,它似乎是有效且可见的,基于 glassPane 的属性,但我在屏幕上什么也看不到(GlassPane 实现都具有基于颜色和文本的功能,应该立即对用户)。

编辑:

下面是相关的代码片段,从更大的方案中提取到一个极简的、独立的(除了DisabledGlassPane上面提到的类,为简洁起见省略)示例。当我运行DesktopFrame下面的课程并单击按钮开始计算时,光标变为等待模式,但屏幕没有变灰,并且没有显示给用户的消息,因此我的怀疑paintComponent从未真正调用过。

我主要想知道我是否有明显的失误,因为我对 GUI 编程和 Swing 没有那么丰富的经验。

0 投票
0 回答
46 浏览

java - Java GlassPane 上绘制图像的橡皮擦

我创建了一个 GlassPane,目的是能够创建一个能够在当前屏幕上进行注释的工具。我目前正在使用一个数组列表来存储要着色的位置的位置。该部分目前运行良好。

现在我试图通过删除部分arrayList 并调用repaint() 来为程序创建一个橡皮擦。

下面是使用 mouseDragged(MouseEvent e) 将点添加到要绘制的点的 arrayList 的代码。

0 投票
1 回答
370 浏览

java - JFrame 和 GlassPane - repaint() 的问题

这个问题可能是我对 Java Swing 或 Graphics 缺乏基本了解的简单问题,如果是这样,我深表歉意。

我正在尝试使用 Java Swing 开发一个 GUI 应用程序,该应用程序可以由通过蓝牙向应用程序发送俯仰、偏航和滚动值的外部设备控制。我的想法是创建一个光标(可能是一个空圆圈),当外部设备四处移动时它会四处移动。我从设备接收数据没有问题,只是我需要在所有组件上实际绘制一些东西的部分。

我认为 GlassPane 是在整个应用程序上显示光标的最简单方法,并在移动外部设备时让它四处移动。我使用线程来捕获数据,然后我试图调用 repaint() ,但它似乎没有触发。

以下是相关代码:

框架:

还有我的 GlassPane:

我想要发生的是根据外部设备的方向在 GUI 上的某处绘制一个红色圆圈。在这一点上,我的“测试打印语句”甚至没有触发一次。

我的猜测是,我缺乏对 Java 的 GlassPane 的某种基本了解,甚至对绘画、绘画组件和重画的工作原理都缺乏了解。谁能指出我做错了什么?

0 投票
1 回答
247 浏览

java - GlassPane 行为怪异

我在JPanel里面创建了一个我放了一个JCheckBox和两个按钮:

在此处输入图像描述

当检查复选框时,面板上方显示了带有透明颜色(alpha = 100)的Glasspane(Alpha = 100),并包含显示String“加载...”的标签,问题是当显示Glasspane时复选框的位置更改时:

在此处输入图像描述

当我更改框架的大小时,glassPane 变得不透明,并且在 glasspane 下可见的所有组件都变得不可见。

在此处输入图像描述

当我将尺寸更改为更小的尺寸时,glassPane 的背景会发生变化并变暗,并且标签字符串“正在加载”变得模糊

在此处输入图像描述

这是我的代码,灵感来自关于 GlassPane GlassPane 教程的 Oracle 教程

谁能纠正我做错了什么?

0 投票
1 回答
1578 浏览

java - JRootpane - 将 glasspane 设置为可见不会拦截鼠标事件

我里面有一个 JFrame 和一个 JPanel 层次结构,我想实现一个内部面板,我可以让它看起来“禁用”(而其他面板不改变),也就是说,用半透明的灰色层覆盖它并拦截所有发送到此面板的鼠标甚至键盘事件。我一直在寻找解决方案,但还没有真正找到一个好的解决方案。

我最接近解决方案的是当我使用 JRootPane 时,每当我想要禁用它时,我都会让它的玻璃窗格可见。玻璃板已设置为不透明且具有半透明背景。

我尝试的一个简单示例:

但问题是,即使玻璃在内容顶部可见,它也不会按照应有的方式拦截获取内容的事件,如此处所述

0 投票
0 回答
112 浏览

java - 小程序上的 GlassPane

我一直在从事我的一个小型 Java 项目,当然我不得不遇到问题。

我想要做什么

我目前正在尝试在 JFrame 中使用小程序和玻璃窗格。所以我可以在玻璃窗格而不是小程序上绘图(因为我正在加载一个外部小程序)。

所以我的目标是在小程序顶部有一个玻璃板。

现在发生了什么?

好吧,玻璃板只有在我删除小程序时才有效。它根本不会覆盖小程序。这真的很奇怪。

你们知道是怎么回事吗?非常感谢您的帮助。

0 投票
2 回答
498 浏览

java - Java - 使用玻璃窗格时隐藏的 JMenuBar

这个问题看起来很简单,但我似乎无法解决它。

我在我的框架中使用 GlassPane(也是 ContentPane)。因此,当我将 JMenuBar 添加到框架时,它不会显示出来。如果/当我在其他时间使用 GlassPane 时,一切正常。我做了一些研究,我知道 JMenuBar 显示在 RootPane 上,我相信 GlassPane 以某种方式隐藏了它。

我需要知道在使用 glassPane 时是否有任何方法可以获取 JMenuBar?

谢谢

更新:我正在设置 glassPane.setOpaque(false)

更新:

实际的代码行要多得多,但这里是与问题相关的代码。(mainPanel 和 notificationPanel 是自构建的 JPanel 扩展类)

}

0 投票
3 回答
821 浏览

java - 如何在 Java 中正确实现玻璃窗格?

我正在尝试为我的大型 Swing 程序添加一个精美的InfiniteProgressPanel作为 GlassPane。但是,它没有出现。它看起来类似于:

我相信它与它要掩盖的长进程在同一个线程中运行。我承认,我对线程的了解还不够,我可能应该弄清楚如何在单独的线程中运行 InfiniteProgressPanel GlassPane,以及在它自己的线程中运行长进程。

0 投票
1 回答
1203 浏览

java - 如何在 JFrame 中设置 glasspane 的位置?

我正在尝试从框架的左侧创建一个菜单滑块。它需要浮动在内容上方,我可以始终使用鼠标侦听器访问它(当鼠标靠近左边缘时打开菜单)。

好吧,我将 GlassPane (My JPanel) 设置为 setOpaue(false) 并且它漂浮在内容之上。但是玻璃板总是位于中心,我需要有可能移动它,滑动它,但没有运气。

setBounds 和 setLocation 对我不起作用。

有人可以帮我吗?

部分代码: