2012-01-30 202 views
1

我想將小程序的大小加倍(包括定位在其上的圖形和組件)。放大小程序的圖形大小

在我開始改變每個座標之前,有沒有簡單的方法來完成這個任務?

+0

當你說「每個座標」時 - 是否所有的面板都使用XY像素位置定位?如果你使用佈局管理器來處理事物的大小/位置,它應該不難。 – 2012-01-30 20:41:02

+0

面板使用XY定位。也使用XY在一些面板上繪製圖形。如果我必須手動乘以每個繪製座標,這將非常痛苦。 – user1012037 2012-01-30 21:07:16

+0

*「使用XY定位面板。」* 1)如果使用了佈局(正確),GUI將展開或收縮以適應可用空間。如果重寫'paint()/ paintComponent()',則您有責任縮放「Graphics」的渲染。 2)你可能會這樣做,就像你在'JFrame'中做的那樣(所以它與applet沒什麼關係)。 3)applet通常不能調整大小,那麼如何實現這個「縮放」呢? 4)爲了更快地獲得更好的幫助,請發佈[SSCCE](http://sscce.org/)。 – 2012-01-31 01:56:34

回答

2

自從我編寫了一個Java小程序以來,已經有一段時間了,所以我無法確切地告訴你哪些類和接口。

但作爲一般原則,你可以用裝飾器做到這一點。創建一個實現與圖形上下文對象*相同接口的類。將實際的圖形上下文傳遞給你的類的構造函數。對於類中的每個方法,請在其包裝的圖形上下文對象上調用相同的方法。並將放大倍數設置爲該類的一個字段,以便將來可以將其放大3倍。

然後,當您的代碼獲取圖形對象時,將其替換爲您的自定義類的實例,該實例應該包裝圖形對象。如果這是不可能的,你可能不得不破解你的原始代碼。但請接受我的建議 - 這次將倍增因子作爲變量/字段添加,以便下次您可以一次性調整數字。

  • 或者,如果沒有可用的界面,這看起來是在Graphics類,擴展它,並一定要覆蓋每一個方法。
0

如果小程序內容縮放,您只需在嵌入html頁面中更改小程序的大小。這假定只使用相對或計算的座標和佈局管理器。如果元素位於絕對位置,這將不起作用。然後,你將不得不觸摸代碼或編寫一個可以擴展內容的包裝器,就像Joe所建議的那樣。

+0

即使這確實有效(我不確定它會如何),那麼你會在幀緩衝區中失去效率。 – Joe 2012-01-30 21:14:51

+0

對,它(縮放黑客)可能適用於瀏覽器/操作系統組合太少,真的很有用。只是在嵌入HTML中縮放小程序似乎沒有辦法,如果我正確解釋發佈者的評論,看起來像使用絕對座標。 – 2012-01-30 21:28:26

+0

我們可能會以不同的方式閱讀這個問題......希望OP能讓它更清晰一些。 – Joe 2012-01-30 21:39:04