所以我有一個(gè)大學(xué)項(xiàng)目使用 swing 制作繪畫(huà)程序,我需要清除 Graphics 對(duì)象,但是從外部類(lèi)中的方法中清除,然后在我通過(guò)此傳遞圖形對(duì)象時(shí)再次繪制所有形狀(刷新圖形對(duì)象)方法 。該類(lèi)負(fù)責(zé)保存我在此圖形上繪制的所有形狀(在 ArrayList 中)。那么,如果我無(wú)法調(diào)用 Jpanel 類(lèi)中存在的 Super.paintComponent ,我該怎么做呢?
2 回答

qq_遁去的一_1
TA貢獻(xiàn)1725條經(jīng)驗(yàn) 獲得超8個(gè)贊
因?yàn)槲彝ㄟ^(guò)此方法傳遞圖形對(duì)象。
您不應(yīng)該傳遞 Graphics 對(duì)象。PaintComponent() 方法(或調(diào)用的任何方法)應(yīng)始終使用傳遞給 PaintComponent() 方法的 Graphics 對(duì)象。
那么,如果我無(wú)法調(diào)用 Jpanel 類(lèi)中存在的 Super.paintComponent ,我該怎么做呢?
在進(jìn)行自定義繪畫(huà)的類(lèi)中,您創(chuàng)建一個(gè)clear()
方法。這將簡(jiǎn)單地從 ArrayList 中刪除所有 Shape 對(duì)象,然后調(diào)用 repaint()。

Qyouu
TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超11個(gè)贊
找到一個(gè)非常簡(jiǎn)單的答案,即“繪制白色矩形,然后再次繪制形狀”
這將簡(jiǎn)單地解決我的問(wèn)題:)
添加回答
舉報(bào)
0/150
提交
取消