2009-09-11 88 views
1

我想創建許多連接小圓形狀的直線。那麼我想在程序中改變線條的顏色和寬度。我正在考慮使用Canvas來做到這一點,但似乎沒有辦法訪問繪製在畫布上的個別形狀,以便在繪製後更改它們的屬性。什麼將是一個簡單的方法來實現呢?java以編程方式更改形狀的屬性

回答

2

首先,什麼版本的Java和哪個UI工具包? AWT的帆布很愚蠢,甚至不會「記住」你畫的東西;當你最小化和恢復窗口時,它會發送一個paint()事件,因爲它想要重新繪製。

最簡單的方法(如果您使用的是AWT並粘貼到畫布上),應該有一個您的形狀列表(一個列表中的所有或一個圈子和一個線條,或任何你喜歡的),並讓你的油漆方法將其全部繪製出來。然後更新列表中的對象。完成更新後,請在您的畫布上撥打repaint(),它會再次爲您撥打paint()

0

如果您使用Graphics和Graphics2D函數(如drawRect,drawPolygon,DrawOval等),則不會將圖形繪製到Canvas上。繪製後,它們不再以形狀存在。你只是有一個填充像素的圖像。正如mihi所說,你可能需要跟蹤你想要繪製的形狀,然後在圖像發生變化時重新產生圖像。也許你也可以通過在背景顏色上繪製並重繪變化後的形狀來「解開」你想要改變的形狀。

相關問題