在任何其他对象/绘图前绘制一些东西

时间:2011-04-11 19:01:09

标签: java screen repaint

我正在制作一个小游戏,我需要更多的帮助。我想这样做,以便如果Player1和Player2完成,将在任何对象或绘图前面的整个屏幕上弹出一个白色屏幕。我现在正在使用它作为代码:

if( isFinishedP1 == true && isFinishedP2 == true ){
        Graphics2D b = buffer.createGraphics();
        System.out.println("Both are finished, drawing WhiteScreen!");
        b.setColor( Color.WHITE );
        b.fillRect(0, 0, 800, 600);
        b.dispose();
}

我的控制台说它们都已完成,但它不会绘制白屏。我没有看到任何东西,我怀疑它是在后面绘制背景和物体。我将白色屏幕(实际上是一个矩形)放在(0,0)(分别为x和y坐标),我的窗口是800x600(宽x高)。

如何在另一个对象前面绘制矩形,还是有更好的方法来做到这一点?白屏的目的是充当“终局屏幕”,您可以选择是否要再次执行,或者进入下一级别。执行此代码时没有错误。

2 个答案:

答案 0 :(得分:1)

这就是GlassPane的用途。

JComponent glass = myframe.getGlassPane();
glass.setOpaque(true);
glass.setBackground(Color.WHITE);
glass.setVisible(true);

答案 1 :(得分:0)

在您展示的代码中,您只需绘制一些缓冲区,而不指定它来自哪里以及它去往何处。

一般来说,你应该覆盖paint方法,如果你在其他所有东西之后绘制一个白色矩形,它看起来就像是在其他所有东西上面。