[英]Why does getWidth function return more value in JAVA?
我预计输出是 120 和 220。但现在输出是 136 和 220。为什么?
import java.lang.*;
import java.awt.GraphicsConfiguration;
import javax.javax.swing.*;
import javax.swing.JFrame;
public class Main {
static GraphicsConfiguration gc;
public static void main(String[] args) {
JFrame frame = new JFrame(gc);
frame.setVisible(true);
frame.setSize(120,220);
System.out.println(frame.getWidth());
System.out.println(frame.getHeight());
}
}
从setSize(int width, int height)
该方法更改几何相关数据。 因此,本机窗口系统可能会忽略此类请求,或者它可能会修改请求的数据,以便以与桌面设置紧密对应的方式放置和调整 Window 对象的大小。
但这是java 7,java 8 doc对此并不高。
这是因为窗口装饰 - 最小化、最大化、关闭按钮。 我在 Windows 10 上对此进行了测试,创建的窗口不能调整为小于 136 像素的大小。 正如已经指出的,窗口系统可以根据需要改变几何形状。
这是Windows测试的屏幕截图:
此外,如果您关闭窗口装饰,窗口将具有指定的大小 (120x220):
JFrame frame = new JFrame();
frame.setUndecorated(true);
frame.setVisible(true);
frame.setSize(120, 220);
System.out.println(frame.getWidth() + " - " + frame.getHeight());
打印:120 - 220
设置最小尺寸也可能存在问题,因此setSize
不会低于最小尺寸,但事实并非如此。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.