我正在尝试查找屏幕的大小并使用它来标注窗口。
JFrame window = new JFrame();
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
int Width = screenSize.getWidth();
int Height = screenSize.getHeight();
window.setSize(Width, Height);
window.setVisible(true);
window.setTitle("Game");
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
它给了我以下错误:
Game.java:7: error: cannot find symbol
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
^
symbol: class Dimension
location: class Game
Game.java:7: error: cannot find symbol
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
^
symbol: variable Toolkit
location: class Game
2 errors
工具已完成,退出代码为1
答案 0 :(得分:2)
您记得导入java.awt.Toolkit
吗?
此外,这是一个非常糟糕的方法,这将花费许多操作系统在屏幕上的“额外”内容(例如Windows上的TaskBar),并将显示在它下面。
相反,您可以使用JFrame#setExtendedState
并传递JFrame. MAXIMIZED_BOTH
,这会使窗口最大化,以便填充整个应用程序可视区域。
现在,如果您真的希望窗口占据整个屏幕,那么您将会看一下Full screen exclusive mode,这将带来它自己的问题
如果您想知道屏幕的“可查看”大小(应用程序窗口应该出现在哪个区域),您可以使用类似的内容......
Rectangle bounds = new Rectangle(0, 0, 0, 0);
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
gd = ge.getDefaultScreenDevice();
GraphicsConfiguration gc = gd.getDefaultConfiguration();
bounds = gc.getBounds();
Insets insets = Toolkit.getDefaultToolkit().getScreenInsets(gc);
bounds.x += insets.left;
bounds.y += insets.top;
bounds.width -= (insets.left + insets.right);
bounds.height -= (insets.top + insets.bottom);
这将返回桌面的可视空间减去所有系统内容......