你好,我正在用Java制作一个游戏,我使用DefaultToolkit获得屏幕大小,但问题是如果是FULLSCREEN,它会检测屏幕大小。如何获取游戏屏幕(非全屏)所占区域的屏幕大小。更准确地说,我的精灵正在移动到底部屏幕的边缘之外,因为系统工具栏为它添加了额外的"填充"。我如何才能获得游戏屏幕所占区域的大小?非常感谢
我认为屏幕边界就是您想要的:
import java.awt.*;
import javax.swing.*;
public class FrameInfo
{
public static void main(String[] args)
{
GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
Rectangle bounds = env.getMaximumWindowBounds();
System.out.println("Screen Bounds: " + bounds );
GraphicsDevice screen = env.getDefaultScreenDevice();
GraphicsConfiguration config = screen.getDefaultConfiguration();
System.out.println("Screen Size : " + config.getBounds());
System.out.println(Toolkit.getDefaultToolkit().getScreenSize());
JFrame frame = new JFrame("Frame Info");
frame.setSize(200, 200);
frame.setVisible( true );
System.out.println("Frame Size : " + frame.getSize() );
System.out.println("Frame Insets : " + frame.getInsets() );
System.out.println("Content Size : " + frame.getContentPane().getSize() );
}
}
您可以使用插入获取任务栏的大小和其他内容。下面是一个不包括任务栏/其他内容的屏幕大小示例。
// Screen size
Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
// Screen insets
Insets insets = Toolkit.getDefaultToolkit().getScreenInsets(getGraphicsConfiguration());
// Get the real width/height
int width = screen.getWidth() - insets.left - insets.right;
int height = screen.getHeight() - insets.top - insets.bottom;