Java 是否存在只获取实际客户端区域的JFrame.getBounds等价物?

Java 是否存在只获取实际客户端区域的JFrame.getBounds等价物?,java,swing,dimensions,Java,Swing,Dimensions,而不是整个窗口完成关闭,最大和最小化按钮,以及边框 我正在尝试保存客户端区域的屏幕截图…maximizedBounds会使应用程序崩溃…取而代之的是内容窗格的边界(即)。这就成功了: Point pos = this.getContentPane().getLocationOnScreen(); Rectangle clientRect = this.getContentPane().getBounds(); clientRect.x = pos.x; clientRe

而不是整个窗口完成关闭,最大和最小化按钮,以及边框


我正在尝试保存客户端区域的屏幕截图…maximizedBounds会使应用程序崩溃…

取而代之的是内容窗格的边界(即)。

这就成功了:

   Point pos = this.getContentPane().getLocationOnScreen();
   Rectangle clientRect = this.getContentPane().getBounds(); 
   clientRect.x = pos.x;
   clientRect.y = pos.y;

这是可行的,但我似乎必须调整快照的坐标。我正在使用机器人创建快照,您的方法返回正确的尺寸,但是x和y坐标都为零,我猜是因为getBounds返回相对于父对象的位置,对于面板,这是x0 y0。这导致robot拍摄了我桌面的屏幕截图,包括0,0、PanelWidth、Panelheight,它只覆盖了我应用程序的一个区域,它位于我屏幕的中心。看起来这是必需的Frame.getXxx+1+1,用于对我的答案进行注释并提供此答案以进一步澄清。