[英]Force repaint from another class - Swing
我基本上有1個名為ClueGame的課程,專門用於使用秋千繪畫主要gui。
在此類中,我遍歷BoardCell對象的列表,並從paintComponents(Graphics g)中調用boardcell.draw(g),后者將矩形繪制到板上。
但是,在完全不同的類WalkwayCell類(BoardCell的子類)中,我需要更新特定矩形的顏色。 我在想像cell.updateColor()
但是很明顯,我需要抽簽才能做到這一點。 我不知道如何更新板上一個對象(矩形)的顏色,因為我沒有圖形對象,因此無法調用繪圖。
希望這是有道理的。 如果有人要求,我可以發布代碼。
創建Swing GUI時,創建GUI模型類很重要。 模型類保存GUI的數據。 具有模型類使對Swing視圖類的編碼變得非常簡單。
在您的情況下,您將按照建議使用諸如cell.updateColor()之類的方法來更改WalkwayCell類實例的狀態。 首先,您更新模型實例。 然后在視圖上繪制模型實例。
我在Hangman Swing GUI文章中通過一個工作示例更詳細地解釋了此概念。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.