Java 启动框架后线程未关闭

Java 启动框架后线程未关闭,java,multithreading,swing,Java,Multithreading,Swing,我将Swing与JDK1.7一起使用,我希望实现非常简单的 任务我想打开一个单独的线程在一个按钮点击帧。 为此,我设计了一个名为TestThread的类 public class TestThread implements Runnable { public TestThread() { super(); } private int target = 100; public void setTarget(int target) { th

我将Swing与JDK1.7一起使用,我希望实现非常简单的 任务我想打开一个单独的线程在一个按钮点击帧。 为此,我设计了一个名为TestThread的类

public class TestThread implements Runnable {
    public TestThread() {
        super();
    }

private int target = 100;

    public void setTarget(int target) {
        this.target = target;
    }

    public int getTarget() {
        return target;
    }

    @Override
    public void run() {
        setFrame();
    }

    public void setFrame() {
        JFrame frame = new JFrame("Test");
        frame.setVisible(true);

    }
}
点击按钮,创建一个新线程,并使用ProgressMonitor组件启动。 现在问题是在打开帧progressMonitor未关闭之后。它永远在运行。 我发现启动线程没有关闭,这就是progressMonitor运行的原因

有人能告诉我这个代码有什么问题吗

  private void jButton_actionPerformed(ActionEvent e) {
    BaseApp.mode = irisApp.mode;
    BaseApp.getInstance().setUser(irisApp.getUser());



        TestThread test = new TestThread();

        setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));


        progressDialog = new ProgressMonitor(this,
        "Please wait while system is loading",null, 0, test.getTarget());
        progressDialog.setProgress(0);

        corpActivityMonitor.setDelay(0);
        corpActivityMonitor.start();

    Thread thread = new Thread(test);

          thread.start();
        jButtonCorporation.requestFocus();

      }
    }
 }
“我想打开一个框架内的单独线程一个按钮点击”-不要。Swing是一个单线程框架,它也不是线程安全的。您应该只在事件调度线程的上下文中创建和更新UI组件。查看更多信息details@Naveen当你关闭()你的ProgressBar时,你会看到“我想点击一个按钮就在单独的线程中打开一个框架”-不要。Swing是一个单线程框架,它也不是线程安全的。您应该只在事件调度线程的上下文中创建和更新UI组件。查看更多信息details@Naveen在哪里关闭()您的ProgressBar查看