2015-11-19 146 views
1

當我點擊形狀時,爲了顯示「選擇」,我想調用方法drawSelected,該方法將重新繪製形狀以顯示它已被選中。像這樣:https://gyazo.com/6e115bdca55aaecd70ebada7e046475d與正方形部分變厚。如何加厚形狀的邊框

爲了做到這一點,我需要一個邊界,我能弄清楚如何通過這樣做:

// Set paint to the random color 
g2.setPaint(getColor()); 
g2.fill(rectangle); 
// Set the border of shape to black 
g2.setPaint(Color.black); 
g2.draw(rectangle); 

但現在當我點擊一個矩形,顯示選擇的方法使用翻譯仍然和我得到這個:https://gyazo.com/07857f6782c3a32dc90946e79736374d只有頂部和左側變厚。

我知道底部和右邊都是正在繪製的圖形,只是因爲它們被另一種顏色填充,它們與前一個矩形重疊,所以您看不到它。

我的問題是,如何將邊框的厚度更改爲替換平移形狀的位置,我可以用較粗的邊框重新繪製該形狀以顯示選區?

+1

我們不能幫助,直到你給我們什麼是您使用繪製更多信息。請創建一個[MCVE](http://stackoverflow.com/help/mcve),以便人們可以輕鬆地幫助你,而不是試圖理解你的問題所具有的祕密。 – StackFlowed

+1

將Graphics2D.setStroke用於更大的筆劃 – ControlAltDel

回答

1

正如你所說,最好的辦法是用較厚的邊框重繪:

Graphics2D g2 = (Graphics2D) g; 
g2.setStroke(new BasicStroke(10)); 
g2.setPaint(Color.black); 
g2.draw(rectangle);