查找屏幕尺寸

时间:2014-10-13 01:56:39

标签: java swing size screen

我正在尝试查找屏幕的大小并使用它来标注窗口。

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

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

这将返回桌面的可视空间减去所有系统内容......