2009-05-19 14 views
1

我怎樣才能「讀取」圖形信息下面的組件 (假設爲BufferedImage)?Swing:如何閱讀組件下的圖形信息?

我想使該組件半透光(已經完成) 並適用於底層的東西圖形效果,如模糊將構成要素(而非組件本身)下的所有 元素。

我的做法是錯誤的可能性:
我試圖讓在漆(...)方法給我 從Graphics2D的實例圖形信息,但它是空的,對不對?

回答

1

問題:您的組件是否是頂級的(即,您想知道JFrame下桌面上的內容),還是隻想了解組件下方的組件?

如果是1),那麼用java.awt.Robot方法createScreenCapture(Rectangle)抓取屏幕截圖是一件簡單的事情;在這種情況下,Rectangle應該是您的窗口範圍。

如果2),那麼如果你有一個參考下面的組件,你可以利用這個事實,即paint(Graphics)不關心Graphics對象來自哪裏。您可以創建一個BufferedImage,請致電createGraphics()(如果預計Graphics2D),並將結果傳遞給您要捕獲的組件的paint(Graphics)方法。
請注意,如果組件是一個容器,它也會繪製其子項;這可能是也可能不是你想要的。

+0

我需要2號)。謝謝,我會試試這個! – 2009-05-19 15:25:42