我想展示一个" Please Wait"对话框,直到我的应用程序使用while循环从csv文件导入数据库。因此,对话框应该保持,从while循环开始时开始,并在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);
}
答案 0 :(得分:0)
您需要有额外的工作线程才能完成工作。启动后,您将在主线程中显示对话框窗口。完成后,它必须通知主线程工作已结束,并且它可以隐藏对话窗口。如果是Swing
,为此您可以使用(并且它是首选的)SwingWorker
。这相对容易。可以找到带有解释的简单示例here。如果您在理解该教程时遇到问题,那么您需要学习一些有关多线程和复制粘贴代码的基础知识,这对您没有帮助。