2014-03-12 78 views
-2

我想显示一个“请稍候”对话框,直到我的应用程序使用while循环从csv文件导入数据库。所以对话框应该保持,while循环开始时开始,while循环结束执行时消失。如何显示“Please wait”对话框,直到完成while循环?

这里是我的代码 -

try{ 
    BufferedReader br=new BufferedReader(new FileReader("temp.csv")); 
    String line; 
    line=br.readLine(); 
    while((line=br.readLine())!=null){ 
     String[]value = line.split(","); 
     String sql = "INSERT into main ([Ticket #], Status, Priority, Department, [Account Name]) " 
     + "values ('"+value[0]+"','"+value[1]+"','"+value[2]+"','"+value[3]+"','"+value[4]+"')"; 
     System.out.println(sql); 
     PreparedStatement pst = null; 
     try{ 
      pst = db.prepareStatement(sql); 
      pst.executeUpdate(); 
     }finally{ 
      if(pst != null){ 
       pst.close(); 
      } 
     } 
    } 
    br.close(); 
} catch(Exception e) { 
    JOptionPane.showMessageDialog(null, e); 
} 
+3

您需要了解['SwingWorker'](http://docs.oracle.com/javase/tutorial/uiswing/concurrency/worker.html)API。 –

+0

我保证我会的!但现在我需要帮助。我会在3小时内向VP呈现这件事! – satnam

+2

“这真的很紧急”不是要求免费代码的借口。如果你想要做某件事付钱给别人。这是一个问答网站... –

回答

0

你需要有额外的工作线程做你的工作。在你启动它之后,你将在主线程中显示对话窗口。完成后,必须通知主线程工作结束,并且可以隐藏对话窗口。如果这是Swing,为此您可以使用(并且是首选)SwingWorker。这相对容易。有解释的简单例子可以在here找到。如果您在理解该教程时遇到问题,那么您需要研究一些关于多线程的基础知识,而复制粘贴代码不会对您有所帮助。