如何展示"请等待"对话框直到完成while循环?

时间:2014-03-12 17:42:30

标签: java swing csv

我想展示一个" 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);
}

1 个答案:

答案 0 :(得分:0)

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