我发现在放置2个类似的JFrame时 在同一地点:
import java.awt.Color;
import java.awt.Point;
import javax.swing.JFrame;
public class Test{
public static void main(String[] args) throws InterruptedException {
JFrame jFrame = new JFrame();
jFrame.setSize(400,200);
jFrame.setUndecorated(true);
jFrame.setLocation(new Point(200,200));
jFrame.getContentPane().setBackground(Color.RED);
jFrame.setVisible( true );
JFrame jFrame2 = new JFrame();
jFrame2.setSize(400,200);
jFrame2.setUndecorated(false);
jFrame2.setLocation(new Point(200,200));
jFrame2.getContentPane().setBackground(Color.GREEN);
jFrame2.setVisible( true );
}
}
在一个JFrame被装饰而另一个没有装饰的情况下,产生一个装饰的框架(绿色),小于未修饰的框架(红色):
两帧的界限是相同的,如预期的那样:
JFrame 1绑定java.awt.Rectangle [x = 200,y = 200,width = 400,height = 200]
JFrame 2界限java.awt.Rectangle [x = 200,y = 200,width = 400,height = 200]
我没有找到导致它的原因。
答案 0 :(得分:0)
我发现是什么导致装饰和未装饰的JFrame
或JDialog
具有不同的显示尺寸。
这是由于插图。未修饰窗口的插图(可以使用jFrame.getInsets()
检查)的大小是0,而装饰窗口的大小是> 0。 0