我正在编写一个使用两个线程的 Java 程序,一个用于不断迭代小部件的 ArrayList 并更新它们的状态,第二个是一个线程利用 swing 根据小部件的状态为一系列块设置动画。
我的问题是如何让实现 Runnable 接口的 Painter 看到 WidgetManager 拥有的小部件的数组列表?此外,这种模式本身就存在缺陷吗?我被教导要避免使用全局变量(例如在 main 中定义 WidgetList),但据我了解,没有办法将引用传递给 Runnable 线程,因为 run() 方法不需要依赖注入。
main{
WidgetManager wm;
Painter painter;
painter.run();
wm.updateWidgets();
}
public class WidgetManager{
volatile ArrayList<Widget> widgets;
void updateWidgets(){
while(true){
//do some stuff
}
}
}
public class Painter implements Runnable{
public void run(){
//paint some stuff
}
}
慕桂英3389331
相关分类