不可调整窗口边界和定位

不可调整窗口边界和定位

如果我创建不可调整大小的jFrames,并且windows aero已启用。setLocation似乎没有正确考虑窗口边框。

在下面的代码中,我希望第二个帧位于第一个帧的右边,而边界是重叠的。如果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);}}

我是做错什么了还是这是个虫子?如何在没有重叠边界的情况下并排显示两个不可调整的对话框?


呼如林
浏览 436回答 3
3回答

慕尼黑8549860

正如所述,这似乎不是Java问题,而是航空应用程序问题。这里.我在Java中看到的一个解决方案是让窗口可以调整大小,然后绕过setMaximumSize bug

慕斯709654

就调整大小而言,这是一个很好的点(如果单独考虑,这将是对我在评论中提出的问题的一个很好的回答),但我最初的问题是定位。假设使用Pack()/没有文本/大小不会改变甚至是空对话框/帧,就像我自己设计的示例一样。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java