Java JProgressBar SQL查询

Java JProgressBar SQL查询,java,swing,jdbc,resultset,jprogressbar,Java,Swing,Jdbc,Resultset,Jprogressbar,从一个星期以来,我一直在寻找如何将JProgressBar添加到结果集。你能给我一个例子,一个应用于结果集的进度条的示例代码吗 这是一个带有按钮的示例代码,以及通过单击按钮完成的操作 JButton btnRechercher = new JButton("Rechercher"); btnRechercher.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent

从一个星期以来,我一直在寻找如何将
JProgressBar
添加到结果集。你能给我一个例子,一个应用于结果集的进度条的示例代码吗

这是一个带有按钮的示例代码,以及通过单击按钮完成的操作

JButton btnRechercher = new JButton("Rechercher");
    btnRechercher.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
            Connection conn = ConnectionManager.getInstance().getConnection();
            try {
                String sql = "SELECT id, nom, prenom, niveau, localisation, pays, secteur1 FROM infos WHERE (niveau LIKE ? AND  localisation LIKE ? AND pays LIKE ? AND secteur1 LIKE ?) OR (MATCH (titre_cv1, titre_cv2, titre_cv3) AGAINST (? IN BOOLEAN MODE))";

                PreparedStatement stmt = conn.prepareStatement(sql);
                stmt.setObject(1, ""+comboNiveau.getSelectedItem()+"");
                stmt.setObject(2, ""+comboLocal.getSelectedItem()+"");
                stmt.setObject(3, ""+comboPays.getSelectedItem()+"");
                stmt.setObject(4, ""+comboSecteur.getSelectedItem()+"");
                stmt.setString(5, ""+motCle.getText()+"");

                ResultSet rs = stmt.executeQuery();

                DefaultTableModel model = new DefaultTableModel();
                model.setColumnIdentifiers(new String []{"id","nom","prenom","niveau","localisation","pays","secteur1"}); 
                    while (rs.next()) {
                        model.addRow(new Object[]{rs.getObject("id"),rs.getObject("nom"),rs.getObject("prenom"),rs.getObject("niveau"),rs.getObject("localisation"),rs.getObject("pays"),rs.getObject("secteur1")});
                    }
                    table.setModel(model);
            } catch (Exception e1) {
                System.err.println(e1);
            }
            ConnectionManager.getInstance().close();
        }
    });
我补充说:

class ThreadAvanceBarre extends Thread {

        public ThreadAvanceBarre(JProgressBar ProgressBar){     
        }

        public void run(){
        try {
            Connection conn = ConnectionManager.getInstance().getConnection();

            String sql = "SELECT id, nom, prenom, niveau, localisation, pays, secteur1 FROM infos WHERE (niveau LIKE ? AND  localisation LIKE ? AND pays LIKE ? AND secteur1 LIKE ?) OR (MATCH (titre_cv1, titre_cv2, titre_cv3) AGAINST (? IN BOOLEAN MODE))";

            PreparedStatement stmt = conn.prepareStatement(sql);
            stmt.setObject(1, ""+comboNiveau.getSelectedItem()+"");
            stmt.setObject(2, ""+comboLocal.getSelectedItem()+"");
            stmt.setObject(3, ""+comboPays.getSelectedItem()+"");
            stmt.setObject(4, ""+comboSecteur.getSelectedItem()+"");
            stmt.setString(5, ""+motCle.getText()+"");
            ResultSet rs = stmt.executeQuery();
            DefaultTableModel model = new DefaultTableModel();
            model.setColumnIdentifiers(new String []{"id","nom","prenom","niveau","localisation","pays","secteur1"}); 
            while (rs.next()) {
                model.addRow(new Object[]{rs.getObject("id"),rs.getObject("nom"),rs.getObject("prenom"),rs.getObject("niveau"),rs.getObject("localisation"),rs.getObject("pays"),rs.getObject("secteur1")});
            }
            table.setModel(model);
        } catch (Exception e1) {
            System.err.println(e1);
        }
        ConnectionManager.getInstance().close();
    }
}

“应用于结果集的JprogressBar”:这是什么意思?您尝试过什么?我想做的是,当我单击按钮时,会出现一个JProgressBar,向我显示actionPerformed的进度。actionPerformed()中当前执行的代码必须在单独的线程中执行。阅读的文档,并尝试根据您的代码调整示例。我将代码添加到主要问题!!!1) 为了更快地获得更好的帮助,请发布一个。2) 不要阻止EDT(事件调度线程)-发生这种情况时,GUI将“冻结”。不要调用
Thread.sleep(n)
为重复任务执行Swing
计时器,或为长时间运行的任务执行
SwingWorker
。有关更多详细信息,请参阅。3) 源代码中只有一行空白就足够了。