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

POS*_*DER 2 java swing

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

Rus*_*ard 5

通常最好的方法是对帧的内容设置PreferredSize(),然后调用pack()。

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