gpt4 book ai didi

java - java中的Windows 10不可见边框有解决方法吗?

转载 作者:行者123 更新时间:2023-12-02 11:21:09 26 4
gpt4 key购买 nike

我发现了 Windows 10 和 Java 的问题。

JFrame frame = new JFrame();
frame.setVisible(true);

当我创建一个新的 JFrame 并将其显示在屏幕上时,它通常应该具有屏幕坐标 x=0 和 y=0。它实际上在 Windows 10 上确实有这些坐标。

但是,真正难看的是,Windows 10 中的所有窗口似乎都有某种“不可见”的边框。所以在这种情况下,窗口的位置看起来是 x=7 和 y=0:

Invisible window border causes an optically space to neighbor elements

这只是一个简单的案例,它看起来很丑。我的软件有一些逻辑,当你将它拖到另一个窗口的附近时,它会“捕捉”一个窗口到另一个窗口。我想你可以想象如果在两个窗口之间有一个 (2*7px=) 14px 的空间,它看起来有多难看,尽管它应该向用户显示为“链接”或“对齐”在一起。

Expecatation of "snapped" windows and reality

在 Windows 7 上,这非常有效!

那么有人知道这个问题并知道如何解决吗?我想可能会找出windows主题的当前名称和操作系统名称。如果是“Aero”和“Windows 10”,总是只用 -7px 计算 x 位置。这会以某种方式可能吗?或者直接找出不可见区域的宽度是多少?

感谢您对此主题的任何想法。

最佳答案

这可以解决您的问题:

public static void setJFrameBounds(JFrame frame, int x, int y, int width, int height) {
Insets insets = ((Window)frame).getInsets();
frame.setBounds(x - insets.left, y, width, height);
}
编辑:在调用函数之前 JFrame 必须是可见的

关于java - java中的Windows 10不可见边框有解决方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54096071/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com