Java JFrame(全屏)背景色不变

Java JFrame(全屏)背景色不变,java,swing,colors,background,jframe,Java,Swing,Colors,Background,Jframe,我正在使用 getContentPane().setBackground(Color.PINK); 将JFrame的背景设置为粉红色。此JFrame正在使用GraphicsDevice进行全屏幕显示。背景的颜色没有改变。有什么帮助吗 全屏代码: public static void main(String... args) { DisplayMode dMode = new DisplayMode(800, 600, 16, DisplayMode.REFRESH_RATE_UNKN

我正在使用

getContentPane().setBackground(Color.PINK);
将JFrame的背景设置为粉红色。此JFrame正在使用GraphicsDevice进行全屏幕显示。背景的颜色没有改变。有什么帮助吗

全屏代码:

public static void main(String... args) {
     DisplayMode dMode = new DisplayMode(800, 600, 16, DisplayMode.REFRESH_RATE_UNKNOWN);
     GameMain game = new GameMain();
     game.run(dMode);

 }

 public void run(DisplayMode dMode) {
     getContentPane().setBackground(Color.PINK);
     setForeground(Color.WHITE);
     setFont(new Font("Arial", Font.PLAIN, 24));

     Screen s = new Screen();
     try {
         s.setFullScreen(dMode, this);
         try {
             Thread.sleep(5000);
         } catch(Exception e) { }
     } finally {
         s.restoreScreen();
     }
}
这对我来说很好

public class TestFullScreen {

    public static void main(String[] args) {

        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {

                FullFrame frame = new FullFrame();
                frame.setUndecorated(true);
                frame.getContentPane().setBackground(Color.PINK);

                GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
                GraphicsDevice[] gs = ge.getScreenDevices();

                gs[0].setFullScreenWindow(frame);

            }
        });

    }

    public static class FullFrame extends JFrame {

        public FullFrame() {
            super();

            addMouseListener(new MouseAdapter() {
                @Override
                public void mouseClicked(MouseEvent e) {
                    System.exit(0);
                }
            });

        }
    }
}
我甚至在
setFullScreenWindow
调用之后设置了移动
setBackground
调用


请确保内容窗格中没有任何可能占用全部空间的内容,并且内容窗格未被更改。

我们还可以获取用于使框架全屏显示的代码吗,请:d为了更快地获得帮助,请发布一个(如@MadProgrammer的答案中所述-仅缺少导入).不幸的是,这对我不起作用。我不相信JFrame里面有任何东西,它只是JFrame本身,使用绘画方法(g.drawString(“string”,int,int);)在它里面有一些文本。不幸的是,这对我不起作用-这个例子是什么?您运行的是什么JVM,在什么操作系统下运行?这是绘画方法,g是图形参数。我所说的“它对我不起作用”是指它不会改变背景颜色,它会做一些事情,但它只是一个黑屏好的,你试过我写的例子了吗,它起作用了吗?如果有,那就是你的代码有问题了,我正在研究
paint
方法。如果不是,那么它就是一个潜在的bug。您可以尝试对自定义的
paint
方法进行注释,看看是否有任何效果。请记住,内容窗格位于框架顶部,因此除非您正确地尊重绘制链,否则您将得到奇怪的结果。它在正常窗口模式下工作吗?是的,您的示例可以工作。当我注释掉我的绘画方法时,背景颜色会改变。。。我不明白为什么那会有不同
public class TestFullScreen {

    public static void main(String[] args) {

        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {

                FullFrame frame = new FullFrame();
                frame.setUndecorated(true);
                frame.getContentPane().setBackground(Color.PINK);

                GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
                GraphicsDevice[] gs = ge.getScreenDevices();

                gs[0].setFullScreenWindow(frame);

            }
        });

    }

    public static class FullFrame extends JFrame {

        public FullFrame() {
            super();

            addMouseListener(new MouseAdapter() {
                @Override
                public void mouseClicked(MouseEvent e) {
                    System.exit(0);
                }
            });

        }
    }
}