Java 可用帧大小和Windows管理器帧大小

Java 可用帧大小和Windows管理器帧大小,java,swing,Java,Swing,我正在用myFrame.setSize(Xsize,Ysize)设置JFrame大小,但它给了我一个问题:这并没有定义框架中的可用空间,而是定义整个框架的大小(它包括Windows Manager框架大小,它并不总是相同的)。 有没有办法通过定义可用空间大小来定义JFrame大小?通常最好的方法是在框架内容上设置PreferredSize(),然后调用pack() 如果这是不可能的,那么我认为在窗口上调用getInsets()将获取窗口管理器框架的大小,只要框架完全可见(您可能需要使用侦听器并等

我正在用myFrame.setSize(Xsize,Ysize)设置JFrame大小,但它给了我一个问题:这并没有定义框架中的可用空间,而是定义整个框架的大小(它包括Windows Manager框架大小,它并不总是相同的)。
有没有办法通过定义可用空间大小来定义JFrame大小?

通常最好的方法是在框架内容上设置PreferredSize(),然后调用pack()


如果这是不可能的,那么我认为在窗口上调用getInsets()将获取窗口管理器框架的大小,只要框架完全可见(您可能需要使用侦听器并等待WindowOpen()事件)。实际上我还没有在X上尝试过,但它在Windows上确实有效。这种方法的缺点是框架会出现,然后调整大小。您可以在屏幕外启动它,然后在获得插图后将其移动到可见位置。

我认为您可以通过在调用setVisible(true)之前调用pack()来避免看到调整大小