栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

显示“正在加载”框架,直到后台进程完成

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

显示“正在加载”框架,直到后台进程完成

就像所有与在Swing中执行长时间运行或阻塞任务有关的问题一样,从Swing中的并发开始,以更好地了解您要解决的问题。接下来看看最常见的解决方案Worker
Threads和SwingWorker

例如:

public static class JasperReportsWorker extends SwingWorker<JasperReport, JasperReport> {    @Override    protected JasperReport doInBackground() throws Exception {        JasperReport report = null;        try { String reportquery = "Select * from invoices "; JasperDesign jasperdesign = JRXmlLoader.load("StatementReport.jrxml"); JRDesignQuery designquery = new JRDesignQuery(); designquery.setText(reportquery); jasperdesign.setQuery(designquery); report = JasperCompileManager.compileReport(jasperdesign);        } finally { try {     rs.close();     pst.close(); } catch (SQLException ex) {     ex.printStackTrace(); }        }        return report;    }}

然后可以使用类似:

JasperReportsWorker worker = new JasperReportsWorker();JDialog dialog = new JDialog();dialog.setModal(true);dialog.add(new JLabel("Working..."));dialog.pack();dialog.setLocationRelativeTo(null);worker.addPropertyChangeListener(new PropertyChangeListener() {    @Override    public void propertyChange(PropertyChangeEvent evt) {        String name = evt.getPropertyName();        JasperReportsWorker worker = (JasperReportsWorker) evt.getSource();        if ("state".equalsIgnoreCase(name)) { switch (worker.getState()) {     case DONE:         if (dialog != null) {  dialog.setVisible(false);         }         try {  JasperReport report = worker.get();  JasperPrint jasperprint = JasperFillManager.fillReport(jasperreport, null, con);  JasperViewer.viewReport(jasperprint, false);         } catch (InterruptedException | ExecutionException ex) {  ex.printStackTrace();         }         break; }        }    }});worker.execute();dialog.setVisible(true);

这些是围绕基本概念的多种变体,请随时尝试



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/483732.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号