如何在 while 循环完成之前显示"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);
}

您需要还有其他工作线程来完成工作。启动后,您将在主线程中显示对话框窗口。完成后,必须通知主线程工作已经结束,并且可以隐藏对话框窗口。如果这是Swing,则可以使用(并且首选)SwingWorker。相对容易。可以在此处找到简单的解释示例。如果您有理解教程的问题,那么您需要研究一些有关多线程和复制模式代码的基础知识,这将无济于事。

最新更新