我正在编写一个使用两个线程的Java程序,一个程序不断地迭代窗口列表并更新其状态,第二个是一个线程,该线程利用秋千来动画一系列基于块的动画在小部件的状态下。
我的问题是,如何获得实现可运行界面的画家,以查看widgetmanager拥有的小部件的阵列列表?而且,这种模式本质上是错误的吗?我被教导要避免全局变量(例如,在MAIN中定义WidgetList(,但是据我了解,由于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
}
}
...
run()
方法不需要[参数]
run()
方法由interface
定义。您可以使用implements
的任何类的实例创建线程(注意,而不是extends
(接口。您的班级可以有实例变量...
public class Painter implements Runnable{
private ArrayList<Widget> widgets;
public Painter(ArrayList<Widget> widgets) {
this.widgets = widgets;
}
public void run(){
paintSomeStuffBasedOnContentOf(widgets);
}
}