【发布时间】:2012-06-02 00:17:18
【问题描述】:
我有一个在 MacBook 上开发的全屏 JFrame,它运行良好。背景能够改变颜色和东西。现在我把它移到我的 Windows 盒子里,背景是白色的,当我告诉它时它似乎不想改变。为什么会这样?
这是设置我的窗口的代码(简而言之):
JFrame frame;
DisplayMode dm;
frame = new JFrame();
frame.setBackground(new Color(0.3F, 0.3F, 0.3F));
dm = new DisplayMode(Main.width, Main.height, 32, DisplayMode.REFRESH_RATE_UNKNOWN);
screen = new ScreenManager();
screen.setFullScreen(dm, frame);
这是设置JFrames全屏的代码。
import java.awt.DisplayMode;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.Window;
import javax.swing.JFrame;
public class ScreenManager
{
public static GraphicsDevice vc;
public ScreenManager()
{
GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
vc = env.getDefaultScreenDevice();
}
public void setFullScreen(DisplayMode dm, JFrame window)
{
window.setUndecorated(true);
window.setResizable(false);
vc.setFullScreenWindow(window);
if (dm != null && vc.isDisplayChangeSupported())
{
try
{
vc.setDisplayMode(dm);
}
catch (IllegalArgumentException e)
{
//No need to do anything.
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
}
【问题讨论】:
-
我怀疑这可能与您编写的代码有关。
-
请附上SSCCE,我们可以提供更多帮助。
-
不完全是最短的代码 sn-p,但您应该能够从那里看到发生了什么。基本上在 Mac 上,你会得到我指定的漂亮的灰色,而在 Windows 上,你会得到非常难看的白色。后来在我的代码中,我设置了不同的颜色,但这在 Windows 机器上也没有改变。
标签: java windows macos swing awt