你好我正在Java中制作一个游戏,并且我使用DefaultToolkit获得了screenSize,但是问题是如果它是FULLSCREEN,它将检测屏幕的大小。如何获得游戏屏幕(不是全屏)占用的区域的屏幕尺寸。更确切地说,由于系统工具栏添加了额外的“填充”,所以我的精灵正在移动到底部屏幕的边缘之外。如何获得游戏屏幕占用的区域大小?非常感谢Java中的屏幕大小
0
A
回答
1
您可以使用Insets获取任务栏的大小和其他内容。这里有一个例子来获得不包含任务栏/其他的屏幕尺寸。
// 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;
+0
假设OP使用的窗口是未修饰的,否则您只想使用容器的大小。但是,这可以用来将窗口的大小设置在第一位+1 – MadProgrammer 2013-02-13 03:30:54
3
我觉得屏幕边界是你在找什么:
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());
}
}
相关问题
- 1. 大屏幕或hdpi的主屏幕小部件大小?
- 2. 屏幕大小pygame
- 3. Java屏幕分辨率大小
- 4. 屏幕大小会覆盖其他屏幕大小:S
- 5. android:layout_height屏幕大小的50%
- 6. 屏幕大小的Javascript
- 7. 浮动屏幕的大小
- 8. 根据屏幕大小改变窗口大小Java
- 9. 当屏幕大小>容器大小
- 10. 多屏幕支持大屏幕和小屏幕
- 11. 如何在android中精确了解屏幕的屏幕大小?
- 12. 更改屏幕中的字体大小
- 13. JSP/Servlet中的屏幕大小
- 14. android中的屏幕大小问题
- 15. 在android中的相对屏幕大小
- 16. PhoneGap App中的初始屏幕大小
- 17. .NET中的屏幕文本大小
- 18. Android屏幕取向大小
- 19. NSRect大小填充屏幕
- 20. HTML5 - Android屏幕大小
- 21. modalpopupextender调整屏幕大小?
- 22. 计算android屏幕大小?
- 23. 为小和大屏幕
- 24. 更改屏幕大小
- 25. 获取屏幕大小XCode
- 26. GLUT屏幕调整大小
- 27. 小屏幕的背景大小
- 28. jscrollpane大于屏幕大小的内容
- 29. 在正常屏幕和大屏幕中对主屏幕小部件大小感到困惑
- 30. 如何减少屏幕显示图像的大小在Java中
使用['Frame.setExtendedState(MAXIMIZED_BOTH)'](http://docs.oracle.com/javase/7/ docs/api/java/awt/Frame.html#setExtendedState%28int%29),然后使用'gameScreen.getSize()'绘制区域的尺寸。 – 2013-02-13 03:26:46
@AndrewThompson假设框架没有装饰,否则你会想要使用容器的大小 – MadProgrammer 2013-02-13 03:30:04
@MadProgrammer我假设'gameScreen'是从'JComponent'或'JPanel'扩展的'游戏渲染/绘画区'来添加到(或设置)框架的内容窗格。虽然也许我应该更清楚一点。 ;) – 2013-02-13 03:52:29