2010-12-23 32 views
2

我經由「雙緩衝」的方式捕獲一個JFrame的屏幕顯示圖像,按照以下:如何從JFrame截圖中刪除標題欄?

public BufferedImage getScreenshot() {  
    java.awt.Dimension dim = this.getPreferredSize();   
    BufferedImage image = new BufferedImage(dim.width, dim.height, BufferedImage.TYPE_INT_RGB);    
    this.paint(image.getGraphics());  
    return image;  
} 

其中this延伸的JFrame。我得到的圖像在標題欄頂部有一個空白條。沒有爲標題欄分配額外空間,捕獲JFrame內容圖像的最直接方法是什麼?

回答

5

您應該可以使用Screen Image類。只需指定框架的內容窗格(或者如果您有菜單,則指定根窗格)作爲您想要的圖像組件。

或者您的基本代碼應該工作,再次指定內容窗格(或根窗格)作爲您要繪製的組件,而不是它自己的框架。

+0

謝謝,挑選內容窗格是關鍵(在我的情況下,它實際上是分層窗格,但這是一個項目特定的細節)。出於某種原因,我的原始代碼不適用於窗格,但屏幕圖像類。 – Greg 2010-12-23 05:02:15