Java 玻璃窗格未显示在JFrame上

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

我一直在尝试为游戏中的HUD实现一个
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),这是最简单的方法


Lol是的,谢谢,在测试各种方法时,我移动了我的
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);