【发布时间】:2021-04-12 13:29:45
【问题描述】:
我有一个摆动框架,带有一个启动线程的按钮:
public class Frame extends JFrame {
private static Frame frame= null;
public static Frame getFrame(){
return frame== null? frame= new Frame(): frame;
}
Thread worker;
JTextArea textarea = new JTextArea();
JButton b = new JButton();
Frame(){
frameinstance = this;
b.addActionListener(actionEvent -> {
worker = new Thread(new myWorker());
worker.start();
});
//...
}
}
线程看起来像:
public class myWorker implements Runnable {
public void run(){
//Do some work
Frame.getFrame().textArea.append("Some work has been done");
//Do some work
Frame.getFrame().textArea.append("Some work has been done");
//etc...
}
}
但文字实际上并没有显示为工作进度。
【问题讨论】:
-
这看起来不像实际的代码,因为“myWorker”和“implements”之间没有空格。这甚至如何编译?什么是“全球”? getFrame 是一个函数吗?那为什么没有括号“(”和“)”?如果不是函数,为什么叫getFrame?此外,您遗漏了部分代码,因此我们不知道那里发生了什么。我认为你应该重新审视和编辑你的问题,尤其是你的代码。否则我不认为你会得到答案,很抱歉。
-
我对我的项目进行了一些更改,以尽可能简短和精确。我纠正了错误。
标签: java multithreading swing text