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);
}
});
}
}
}