填充矩形未显示



我在屏幕上绘制矩形时遇到问题。我的jpanel类中有paintComponent方法,我想在其中画一个矩形。它看起来像这样:

public void paintComponent( Graphics g ) {
    super.paintComponent( g );
    g.setColor( Color.yellow );
    g.fillRect( 0, 140, 100, 100 );
}

问题是我在我正在绘制的面板上添加了几个面板。子面板始终显示在顶部,矩形绘制在它们下方。我怎样才能使矩形被画在前面?

如果绘制的 JPanel 在容器中,那么它不可能在"前面"。您可以通过对子组件调用 setOpaque(false) 来使子组件不透明,但容器仍将始终位于其子组件后面。

如果您绝对想要一个组件高于另一个组件,请考虑使用 JLayeredPane 或考虑在顶层窗口的玻璃窗格上绘制。

没有冒犯,但我觉得这是一个坏主意......

public void paint( Graphics g ) {
    super.paint( g );
    g.setColor( Color.yellow );
    g.fillRect( 0, 140, 100, 100 );
}

正如Hovercraft所指出的,更好的方法是使用GlassPane(如何使用RootPanes)或JLayeredPaneJLayer(如果您不使用Java 7,则为JXLayer)。

相关内容

  • 没有找到相关文章

最新更新