2011-09-26 61 views
2

我正在使用Java Swing來製作GUI。使圖像跟隨框架尺寸

我需要向用戶展示一些打印在圖像上的信息(它們在運行時生成爲BufferedImage對象)。

我在做什麼:我把JPanelJFrame,並且當系統調用paint(Graphics g)方法我借鑑g圖像 - >(g.drawImage(buffImg,0,0,null))

我不喜歡的事情是:當我調整框架的大小時,圖像保持不變,我只擴展視野。當我調整它的大小時,我想讓圖像與框架「展開」。

有沒有一種有效的方法呢? (我想我可以創建一個新的調整大小的圖像,幀的大小,每次刷新圖形,但我每秒更新圖像幾次,所以這將是一個非常繁重的任務..)

+0

1)使用駝峯的屬性。 2)對於'JPanel'中的自定義繪畫,重寫'paintComponent()',以便在'JFrame'中自定義繪畫......只是不要。使用'JComponent'或'JPanel' 3)*「這將是一項非常繁重的任務」*性能測試勝過猜測。 –

+0

1)right:D 2)這就是我所做的,我只畫jpanel,但由於gui在我更新它時不會刷新圖像,所以我強制更新像這樣:'g = panel.getGraphics() ; panel.paint(g);'...不優雅,但工作得很好:D – Pronte

回答

5

變化:

g.drawImage(BuffImg,0,0,null): 

要:

g.drawImage(BuffImg,0,0,getWidth(),getHeight(),this): 
+1

真的不能相信它是那麼容易.. 我已經讀過Graphics類的javadoc,但我誤解了: 我思想「繪製指定圖像的大小,已經縮放到指定矩形內。」意思是「僅畫出圖像的一部分」 非常感謝! – Pronte

+1

不用擔心。很高興你已經檢查過Java文檔(他們是一個很好的資源,但有時候我誤解了我讀過的東西),並且很高興你能對它進行排序。 :-) –