【问题标题】:GlassPane not visible over JDialogGlassPane 在 JDialog 上不可见
【发布时间】:2011-08-07 06:08:30
【问题描述】:

我试图在JDialog 上看到GlassPane,但我看不到任何东西。为什么会发生?如何使GlassPane 在JDialog 上可见?

这就是我正在做的事情:

public class New_Window extends JDialog {

    public New_Window(int Screen_Index, int Start_Panel, int Length) {
        super(new Frame(Monitors.getInstance().getNextDevice()
                .getDefaultConfiguration()), Title, false);
        setLayout(new BorderLayout());
        setGlassPane(glassPane);
        getGlassPane().setVisible(true);
        getContentPane().setBackground(Color.black);
        JPanel Container = new JPanel(new FlowLayout(FlowLayout.CENTER, 2, 2));
        Container.setOpaque(false);
        getContentPane().add(Container, BorderLayout.CENTER);
        [...]
    }

}

注意:我使用的是 Java 版本 6 更新 24。我使用的是自定义 GlassPane,其 opaque 值设置为 false。

【问题讨论】:

  • 请给我们更完整的代码。玻璃窗格的 opaque 值设置为 false。如果您使用的是默认值,那是您的问题。但我猜的很明显。
  • 我正在使用版本 6 更新 24 并且我正在使用自定义 glassPane 并且其不透明值设置为 false
  • 这没有帮助,我仍然无法在 JDialog 上看到我在玻璃窗格上绘制的图像
  • 好的。那么问题就更严重了。您的代码中一定有一些错误,我们可以看到吗?让我们成为您的代码的SSCCE。我们可以在哪里看到您如何分配所有变量以及将它们放在哪里。您可能会感到惊讶,这样做您自己可能会发现问题。
  • 当您发布您的 SSCCE 时,请使用正确的变量名称。变量名不应以大写字符开头。我从未见过这样做的教程或书籍,所以不要制定自己的规则并遵循标准。

标签: java swing visibility


【解决方案1】:

阅读 Using a Glass Pane 上的 Swing 教程中的部分以获取工作示例。从示例代码开始,删除不需要的代码。

【讨论】:

  • 在我的项目中,我可以成功使用 GlassPane,但我的程序分布在多个显示器上,主显示器有 JFrame,我可以在上面看到 GlassPane,但其他显示器包含我看不到的 JDialog GlassPane 在它上面,我认为问题可能出在带有 Graphics 对象的 paintComponent 函数上,你怎么看?
猜你喜欢
  • 1970-01-01
  • 2013-12-07
  • 1970-01-01
  • 1970-01-01
  • 2013-12-26
  • 1970-01-01
  • 2012-04-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多