【发布时间】:2020-10-26 16:07:00
【问题描述】:
我搜索了互联网和 StackOverflow 并找到了很多获取当前屏幕尺寸的方法,但是
屏幕尺寸不是显示尺寸,有没有办法获取显示尺寸而不是屏幕尺寸?
我目前正在使用以下代码行来获取屏幕尺寸:
//size of the screen
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
frame.setUndecorated(true);
frame.setAlwaysOnTop(true);
frame.setVisible(true);
frame.add(panel);
//get screensize
int height = (int) screenSize.getSize().getHeight();
int width = (int) screenSize.getSize().getWidth();
System.out.println("Current system width & height: " + screenSize.width + ", " + screenSize.height);
frame.setSize(width, height);
有人知道获取显示尺寸的方法吗?还是真的不可能?
【问题讨论】:
-
大多数人认为屏幕尺寸是显示尺寸的同义词。当您使用这些术语时,您究竟是什么意思?对你有什么不同?
-
还有,你为什么在乎。您要解决的要求是什么。如果您认为您需要知道“显示”尺寸,那么您可能正在错误地接近解决方案。
-
最后一行表明您正在尝试将框架设置为全屏。如果那是您的意图,请查看stackoverflow.com/questions/11570356/jframe-in-full-screen-java
-
我想区分但听起来很荒谬。我创建了一个全屏的jframe,现在我想在右上角放置一个按钮,所以我需要我的屏幕尺寸来确定我需要向右移动多少但是当我使用这种方法时,它在我的电视上显示正确但是不在我的笔记本电脑屏幕上。我知道这听起来很愚蠢,我还在学习。
-
这听起来一点也不愚蠢。我确实相信这是XY-Problem。为了将组件放在框架的右上角,您不需要知道框架的大小,您的布局管理器会为您完成。你可以例如将BorderLayout 添加到您的框架中,将所有当前组件放入中心,然后在北部分添加另一个具有右对齐FlowLayout 的面板。右上角会出现一个按钮。
标签: java swing jframe screen-size