这是我用来实例化JFrame的代码示例:

public class TestFrame{
public static void main(String[] args){
    JFrame frame = new JFrame();
    Insets insets = frame.getInsets();
    frame.setSize(new Dimension(insets.right + insets.left + 400, insets.bottom + insets.top + 400));
    System.out.println(String.format("Top = %d \nBottom = %d \nLeft = %d \n Right
            = %d", insets.top, insets.bottom, insets.left, insets.right));

    frame.setResizable(false);
    frame.setVisible(true);
}
}


帧显示良好,但所有插图似乎都等于零。我需要知道顶部标题栏的大小,因为我想要一个尺寸为400x400的内容窗格。

我在多个平台上进行了测试,在Windows和Mac上也发生了同样的事情。

我究竟做错了什么 ?

最佳答案

如果您希望内容窗格的尺寸恰好为400x400,则可以考虑将其preferredSize设置为400x400(尽管我不希望在内容窗格上强制设置首选大小,但在某些情况下可以接受)。
设置该首选大小后,在显示框架之前,请在框架上调用pack()


这是最干净,最简单的解决方案,您不必关心边框插图。

10-08 14:01