Java 在按钮上具有不确定模式的进度条单击不';行不通

Java 在按钮上具有不确定模式的进度条单击不';行不通,java,netbeans,jprogressbar,Java,Netbeans,Jprogressbar,我正在使用netbeans,这是按钮单击功能。我希望在单击按钮后立即运行进度条。模式将是不确定的,因为我正在调用一个类WriteToFile,它在后台工作数分钟,并且不返回任何值 private void createFileButtonActionPerformed(java.awt.event.ActionEvent evt) { String str = (String) selectTypeComboBox.getSelectedItem(); createFileBut

我正在使用netbeans,这是按钮单击功能。我希望在单击按钮后立即运行进度条。模式将是不确定的,因为我正在调用一个类
WriteToFile
,它在后台工作数分钟,并且不返回任何值

private void createFileButtonActionPerformed(java.awt.event.ActionEvent evt)
{
    String str = (String) selectTypeComboBox.getSelectedItem();
    createFileButton.setEnabled(false);// Prevent more button presses
    String filepaths = fileChooserWindow.getSelectedFile().getAbsolutePath();
    String selectType =(String) selectTypeComboBox.getSelectedItem();
    WriteToFile writeOBJ;
    writeOBJ = new WriteToFile(filepaths,start,selectType);
    try
    {
        writeOBJ.selectType();
    }
    catch (SQLException | IOException  | RuntimeException ex)
    {
        System.exit(0);
    }
}
让这个工作:

    jProgressBar1.setVisible(true);
    jProgressBar1.setIndeterminate(true);
    Executor executor = java.util.concurrent.Executors.newSingleThreadExecutor();
    executor.execute(new Runnable(){
        @Override
        public void run(){
       String str = (String) selectTypeComboBox.getSelectedItem();
       createFileButton.setEnabled(false);// Prevent more button presses
       String filepaths = fileChooserWindow.getSelectedFile().getAbsolutePath();
       String selectType =(String) selectTypeComboBox.getSelectedItem();
       WriteToFile writeOBJ;
       writeOBJ = new WriteToFile(filepaths,start,selectType);
      try
      {
       writeOBJ.selectType();
      }
      catch (SQLException | IOException  | RuntimeException ex)
      {
       System.exit(0);
      }
     jProgressBar1.setVisible(false);
   }

创建一个JProgressbar并将其设置为不确定模式,默认情况下使其
setVisible(false)
,调用函数时,使JProgressbar可见,并在完成所有不起作用的操作后将其隐藏。我在函数的开头添加了jProgressBar1.setVisible(true),在末尾添加了setVisible(false)。我想我需要使用类似于C#中Backgroundworker的东西。在线程中运行它,然后你能用代码解释吗?我试过穿线,但遗漏了一些东西。