如果我创建不可调整大小的 JFrame,并且启用了 windows AerosetLocation
似乎没有正确考虑窗口边框。
在下面的代码中,我希望第二帧位于第一帧的右侧,而不是边框重叠。如果 Aero 被禁用或者我删除了对它的调用,setResizable
则按预期完成。
import java.awt.Rectangle;
import javax.swing.JFrame;
public class FrameBorders {
public static void main(String[] args) {
JFrame frame1 = new JFrame("frame 1");
JFrame frame2 = new JFrame("frame 2");
frame1.setResizable(false);
frame2.setResizable(false);
frame1.setVisible(true);
Rectangle bounds = frame1.getBounds();
frame2.setLocation(bounds.x+bounds.width, bounds.y);
frame2.setVisible(true);
}
}
我做错了什么还是这是一个错误?如何在没有重叠边框的情况下并排显示 2 个不可调整大小的对话框?
编辑:添加屏幕截图(也将 frame2 更改为 JDialog 而不是 JFrame)
航空开启:
航空关闭:
Aero 开启但可调整大小: