【发布时间】:2019-03-17 03:38:12
【问题描述】:
以下代码运行良好。我唯一需要的是能够从 Bot() 类中将结果发布到 Swingworker?
我已经在网上搜索了所有内容,但均无济于事。这个Answer 不适合我。
JButton btnStart = new JButton("Start");
btnStart.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Bot test = new Bot();
SwingWorker<Void, String> worker = new SwingWorker<Void, String>() {
@Override
protected Void doInBackground() throws Exception {
test.run();
return null;
}
@Override
public void process(List<String> chunks) {
for (String s : chunks) {
textAreaMain.setText(s);
}
}
};
worker.execute();
}
});
btnStart.setBounds(305, 179, 95, 25);
panel_1.add(btnStart);
另一个类中的方法
//Bot类有
class Bot {
void run() {
for (int i = 0; i <= 10; i++) {
Thread.sleep(1000);
publish("Some message");
}
}
}
举个例子,我如何编写我的 Bot() 类来获得我需要的东西?
【问题讨论】:
-
请努力格式化您的代码,以便于阅读。
-
使用允许
Bot在需要完成某事时呼叫某个感兴趣的方的接口。让SwingWorker注册为感兴趣的一方并收听更新 - 基本上是observer pattern -
这里重要的一点是停止思考“
Bot需要与SwingWorkerBot" -
有什么例子吗?
标签: java multithreading swing user-interface swingworker