[英]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.