2013-05-15 71 views
-2

我正在做一個Java項目,我有一個形狀的集合,我需要給每個形狀不同的顏色。 例如在集合中我有正方形和矩形,然後我需要畫紅色的方塊和藍色的矩形。我正在考慮將shape設置爲graphics2D,但我不能。如何看待一個形狀作爲一個圖形2D

+0

真的,我們需要一個特定的事情,你已經嘗試做,並有問題提供有用的建議 –

+0

如果你需要更普遍的建議,然後搜索圖形教程。例如http://docs.oracle.com/javase/tutorial/2d/basic2d/ –

+0

作爲您在上一個問題中的狀態,將Shape和顏色細節包裝在代理對象中,這可以讓您攜帶所需的信息集中對象。另外,你可以使用一個HashMap鍵,將其與顏色相關聯,然後在繪畫時查看這些信息。 – MadProgrammer

回答

4

形狀和Graphics2D的概念是完全正交的 - 您無法將Shape看作是Graphics2D對象,因爲它不具有任何意義,因爲形狀是點和Graphics2D的集合對象就像一支畫着點的畫筆......他們只是不會攪動。此外,一個Shape在整個程序中仍然存在,而一個Graphics對象可以隨JVM的意願而交換,而這完全超出了你的控制範圍。

解決方案:徹底重新思考自己在做什麼,但不要咆哮這棵樹,因爲它只會導致痛苦。如果您需要更多幫助,正如我們之前建議的,請發佈sscce。另外,如果你想連接一個Shape與一個顏色,那麼考慮創建一個包裝類,它將Shape對象和Color對象保存在一起。另一種選擇是使用Map<Shape, Color>

+0

謝謝,但我無法做到,我可以發佈的最多的是我之前發佈的內容;我用言語解釋它,但是爲了讓我可以編譯的代碼無法訪問,但是謝謝你試圖幫助我 –

+2

@vilal_我還沒有看到你甚至嘗試創建sscce。爲什麼不嘗試,因爲你沒有任何損失。在你這樣做之前,我擔心你可能會繼續得到令你失望的答案,以及讓我們失望的問題。 –

+2

我認爲這一點,如果你沒有代碼開始,那麼你想要的是一個教程不堆棧溢出 –

相關問題