Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何为jframe实现多线程_Java_Multithreading - Fatal编程技术网

Java 如何为jframe实现多线程

Java 如何为jframe实现多线程,java,multithreading,Java,Multithreading,我使用以下代码实现多线程: class Progress extends JFrame implements Runnable { Thread t; JProgressBar current; JTextArea out; JButton find; Thread runner; JFrame tframe; int num = 0; public Progress() { t=new Thread(this,"Thread1"); t.start(); } publ

我使用以下代码实现多线程:

class Progress extends JFrame implements Runnable {
  Thread t;
JProgressBar current;
JTextArea out;
JButton find;
Thread runner;
JFrame tframe;
int num = 0;

public Progress() {
    t=new Thread(this,"Thread1");
    t.start();


}
public void run()
{
      tframe=new JFrame("Please wait");
       setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       JPanel pane = new JPanel();

    pane.setLayout(new FlowLayout());
    current = new JProgressBar();
    //current.setValue(0);
    current.setStringPainted(true);
    current.setIndeterminate(true);

    pane.add(current);
    setContentPane(pane);
    tframe.add(pane);
    tframe.pack();
    tframe.setSize(300,100);

    tframe.setResizable(false);
    tframe.setAlwaysOnTop(true);
    tframe.setLocation(300,300);
    tframe.setVisible(true);

}
public void stop()
{
    tframe.dispose();
}
当我需要启动线程时,我使用

     Progress t=new Progress(); .
这将显示帧,要停止,我使用t.stop();然而,我并没有得到期望的多线程效果。仅显示帧,而不显示无生命进度条。请注意,当用作单个线程时,将显示进度条


这里必须做什么?请帮忙,提前谢谢这是完全错误的。Swing是单线程的。与swing组件的每个交互都必须在单个事件调度线程中完成。仔细阅读。它解释了在使用多个线程时必须如何执行操作。另请阅读。

要更快地获得更好的帮助,请发布一篇文章。我猜所有的源代码都需要成为一个SSCCE,是一个
main(String[])
方法和一些导入。-1:我是一个非常稀疏的向下投票人(1100多张投票中只有27张),但你的答案是严重误导的。“这是完全错误的”这不是完全错误。可能存在缺陷,但并非完全错误。“Swing是单线程的”我不知道从哪里开始。那只是。。。错了!Swing本质上是多线程的,支持多种类型的其他非必要线程。我没有说别的,我将OP指向官方的swing教程,该教程解释了如何使用多线程。关于这个问题所涉及的多线程方面,OP的代码确实是完全错误的。听起来可能很刺耳,但这是事实。我的回答一点也不误导,因为它引导OP找到了合适的文档。