问题标签 [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 - 为什么 Canvas as contentPane 不绘制添加到 JFrame glasspane 的不透明组件
好的,我有一个Canvas
(我使用它是因为它可以实现BufferedStrategy
)。
我将 my 添加Canvas
到我的JFrame
contentPane中,然后将HUDPanel
(JPanel
由另外 2 个JPanel
s 组成 - 带有JProgressBar
s 和JLabel
s - 以显示健康和chakara条)添加到我JFrame
的glassPane。
HUD 上的所有组件都是不透明的。
现在,当我将 s 添加HUDPanel
到我JFrame
的glassPane中时Canvas
,它的contentPane包含组件的 2 JPanel
s 不会被涂成不透明的:
但是,如果我添加一个而JPanel
不是contentPane一切正常:Canvas
JFrame
为什么是这样?我该如何解决?
先感谢您
HUDPanelTest.java
HUDPanel.java
java - 使用玻璃窗格时鼠标调整大小光标不起作用
在下面的示例中,我有一张桌子。如果将鼠标悬停在表格标题列边缘上,光标将变为调整大小光标符号。但是,如果您取消注释下面的行以将玻璃窗格设置为可见,则光标不再更改 - 但您仍然可以调整列的大小并以其他方式与表格交互(例如,选择表格单元格等)。
有没有办法在使用玻璃窗格时保持相同的鼠标光标行为?
我需要一个适用于 Java 6 的解决方案。
java - 将透明的 JPanel 放在另一个 JPanel 上不起作用
我试图将一个 JPanel 放在另一个 JPanel 之上,该 JPanel 包含一个 JTextArea 和一个按钮,并且我希望上部 apnel 是透明的。我已经通过制作上面板的 setOpaque(false) 进行了尝试。但它不工作。谁能帮我度过这个难关?提前致谢!
java - Swing:绘制所有其他组件并保留事件
我正在尝试做的事情:绘制一条垂直线和一条水平线,它们相互垂直并在鼠标指向的位置相交。一种光标跟踪器。
我的结构:JFrame -> CustomPanel -> 其他面板/组件等。
CustomPanel 继承自 JPanel,它被设置为我的 JFrame 的 ContentPane。
我尝试使用 GlassPane,一切正常,但我想保留我的事件,而不是禁用它们。我仍然希望能够单击按钮等。
一个相关的问题是这幅画在 Swing 中的组件顶部?. 当我将鼠标移动到我的 CustomPanel 中的空白位置时,一切都按预期运行,但它仍然没有绘制在其他组件上。
在图像中,它应该继续在按钮上绘画,但是当我进入它时它停止了,然后在我退出时又恢复了。
代码如下。
和我的适配器:
java - 直接在玻璃板上绘图:不工作
我正在使用 Swing 开发一个应用程序。当用户与应用程序交互时,帮助数据可能会在屏幕的封闭部分中可用,当这种情况发生时,我想画一个指向该部分的小箭头。
为此,我扩展了一个 JPanel 并将其添加为应用程序 jframe 的玻璃窗格。自定义玻璃窗格类的名称是 AlertGlassPane。
AlertGlassPane 执行此操作:等待新的帮助数据可用。当发生这种情况并且帮助部分关闭时,它会在屏幕上找到帮助部分的位置,然后在其旁边绘制一个动画箭头。
为了绘制箭头,我扩展了玻璃窗格的 paintComponent 方法。
为了使箭头动画化,我创建了一个每 100 毫秒循环一次的小线程,在玻璃窗格上调用 repaint。
问题:Java 忽略了我的绘图……如果触发动画开始并静止不动,则什么也不会发生。应用程序上不显示任何绘图。
我知道循环正在运行并且正在调用paintComponent,但是自定义绘制没有生效。
但是,如果我将鼠标移到应该呈现箭头的区域上,它确实如此!但就在鼠标移动的时候。如果停止移动鼠标,动画也会停止,并且箭头会在鼠标停止(或离开该区域)之前的最后一个位置冻结。
我尝试了很多东西(例如设置绘图的剪辑区域),但似乎没有任何效果。唯一有效的是当我从paintComponent 内部错误地调用repaint 时。
此时我正在寻找一种方法来与渲染系统通信,即我的玻璃窗格的给定区域需要重新绘制(repaint(x, y, w, h) 不起作用......)。也许将自定义渲染移动到 JLabel,然后将此标签添加到玻璃窗格?我不喜欢这种方法...
在此处发布代码段之前,我将尝试清理代码。这会有帮助吗?
提前致谢!
片段:
java - 在 JPanel 上绘图而不重新绘制背景
我有一个算法可以在 JPanel 上显示漂亮的分形。每当用户将鼠标悬停在面板上时,我希望能够在分形面板上显示网格线“十字准线”。
我已经通过一种快速、简单的方法来绘制这样的东西(fractal
是分形 JPanel 的名称)来实现这一点:
如图所示,我必须 repaint() 以清除任何旧的十字准线。
我有一种感觉,我需要在诸如 Glass Pane 之类的东西上绘制我的十字准线才能放在我的 JPanel 之上——但是,JPanel 不提供 Glass Pane。JRootPane 可以——我可以用它来代替吗?
附言
Line2D
目前我正在用很多小s逐个像素地绘制分形。我最终会将其更改为生成BufferedImage
- 在这种情况下,这个问题甚至会重要吗?
java - 在 Java (Swing) 中设置背景图像和灰色 GlassPane
我目前正在为两个 Java GUI 事情苦苦挣扎。
情况是这样的:我正在使用 Swing 组件设计一个文字游戏。我有一个放置所有东西的主 JFrame(我的 GUI 类扩展了 JFrame)。我想做两件事:
第一种:我想设置一个图像作为主框架的背景图像,它必须显示在所有组件的后面。我四处寻找,但没有找到可行的解决方案。我尝试制作一个扩展的 BackGroundPanel 类,但是当我创建 BackGroundPanel 的一个实例时,我不知道如何使它成为框架的背景......我也没有找到从“图像”加载图像的好方法我的 src 文件夹中的目录...
第二:当程序启动时,用户会看到一个未装饰的 JDialog,需要禁用主框架,我想通了,但我也想让它变暗一点。我相信 GlassPane 应该是可能的,但我不知道如何设置 GlassPane 用一种颜色覆盖面板......
帮助将不胜感激,我认为我没有任何有用的代码可以分享,但我认为上面解释的情况给出了一个大致的想法?我只是希望有人能让我走上正轨,这样我就可以进一步解决这个问题!谢谢!
java - Drawing on JPanel behind GlassPane when clicking on GlassPane
Okay So I looked through multiple forums and Google and couldn't find an answer to my specific problem. So I have two panels stacked on top of each other and the one on top is a glassPane. When you drag your mouse around the glassPane it draws a vertical red line at the cursor,which works, but when I click on the glassPane I want it it draw a black line at the cursor position on the panel below the glassPane. I can get it to redirect the mouseClick to the bottom panel but it wont draw the line. It just makes the redline disappear until you move the mouse again. Also If I set the glassPane invisible and click on the bottom panel the line is drawn so the drawing code works just fine. Thanks in advance.
Main Class
GlassPane Class
}
Listener Class ( for dispatching the mouse click)
}
java - 创建阻挡玻璃窗格显示方法
我使用玻璃窗格在 JFrame 内创建了一个模式对话框。我的显示方法非常简单:它创建一个 JPanel 作为带有一些 alpha 背景的玻璃窗格,并添加 JLabel 和一个确定和关闭按钮。然后通过 设置和显示玻璃窗格frame.getGlassPane().setVisible(true);
。
一切正常:如果我调用该方法,窗格将显示,我可以单击确定或取消,玻璃窗格将隐藏。但是该方法在显示玻璃窗格后直接返回。但我希望它表现得像JOptionPane
方法:它们一直阻塞,直到对话框关闭。
但是每次我试图在我的显示方法结束时插入任何类型的忙等待时,如果我单击打开按钮,GUI 就会被冻结。我也尝试从中获取机制,JDialog#show()
但这对我来说有点复杂。
那么如何在玻璃窗格可见时阻止 show 方法呢?
这是一个简单的例子:
java - JPanel 中的新不可见层
我想寻求帮助。我想要这样的东西:http: //docs.oracle.com/javase/tutorial/uiswing/components/rootpane.html#glasspane
我有这个带有地图的应用程序,我想在一个新的不可见图层中有一张小图片。小图片可以通过 JSlider 向上和向左移动。该层应该只在“标签”之上。A 有这个代码:
谢谢大家。
嗯...