Java 玻璃窗格未显示在JFrame上
我一直在尝试为游戏中的HUD实现一个Java 玻璃窗格未显示在JFrame上,java,swing,jframe,paintcomponent,glasspane,Java,Swing,Jframe,Paintcomponent,Glasspane,我一直在尝试为游戏中的HUD实现一个GlassPane,但现在我似乎无法让JFrame将我的GlassPane设置为自己的I;我使用了setGlassPane(),我一直在阅读一些示例,试图找出我的错误,但什么都没有。所以我写了一篇文章来说明我的问题。我有一个JFrame,我在其中添加了一个带有标签“Testing”的Jpanel,然后启动我的galss窗格,并在我的frames实例上调用setGlassPane()。我的玻璃窗格有一个MouseListener,一个JPanel和2个JLabe
GlassPane
,但现在我似乎无法让JFrame
将我的GlassPane
设置为自己的I;我使用了setGlassPane()
,我一直在阅读一些示例,试图找出我的错误,但什么都没有。所以我写了一篇文章来说明我的问题。我有一个JFrame,我在其中添加了一个带有标签“Testing”的Jpanel,然后启动我的galss窗格,并在我的frames实例上调用setGlassPane()。我的玻璃窗格有一个MouseListener
,一个JPanel
和2个JLabels
,还有一个覆盖的paint()
但是MouseListener
不起作用paint()
不会显示,我的标签也不在那里(因此基本上我的GlassPane
没有被设置为我的新框架GlassPane
)-
谢谢。在使
玻璃窗格
可见之前,您似乎必须首先将自定义的玻璃窗格
添加为框架玻璃窗格
!这里的代码似乎有效:
//setting glassPane
m_glassPane = new GlassGamePane();
setGlassPane(m_glassPane);
//set opaque to false, i.e. make transparent
m_glassPane.setOpaque(false);
m_glassPane.setVisible(true);
来自JavaDoc:)
将glasspane添加到JRootPane后,需要将其设置为可见。- 似乎Glasspane是正确创建的,但Glasspane只覆盖轻量级JComponent,否则就隐藏在重量级Swing或AWT J/Component后面
- Glasspane没有实现任何LayoutManager,您必须设置适当的LayoutManager
- 对于测试,将非不透明的JLabel与一些背景放在一起
- 我喜欢Glasspane,但您可以使用基于JXLayer(Java6)或OverlyLayout的JLayer(Java7),这是最简单的方法
setGlassPane(m_glasspane)m_glasspane.setVisible上方的code>方法(true)代码>如果我只是阅读文档,它会更容易工作:Pinteresing也许我会尝试一下,至少现在我可以工作了,似乎我必须在将玻璃窗格添加到我的框架后将其设置为可见。,+1
//setting glassPane
m_glassPane = new GlassGamePane();
setGlassPane(m_glassPane);
//set opaque to false, i.e. make transparent
m_glassPane.setOpaque(false);
m_glassPane.setVisible(true);