SwingWorker实现旋转等待提示的功能

本文介绍了如何使用SwingWorker在Java Swing应用程序中实现一个旋转等待提示对话框,以改善用户在进行耗时操作时的体验。通过WaitUnit.java代码和SwingWorker的结合,展示了一个简单的“正在扫描中,请稍等…”的提示效果。
摘要由CSDN通过智能技术生成

最近在用swing写一个扫描电脑里文件的小程序时,由于扫描是一件很耗时的操作,所以每次在点击按钮后要等很久才能出结果,而中途有没有什么提示,显得很不友好,本想写一个进度条来显示,又觉得太麻烦,最后就写了一个旋转等待的dialog来进行友好提示“正在扫描中,请稍等…”,效果如下:
这里写图片描述

WaitUnit.java代码如下:

package com.scan.server.swing.unit;

import java.awt.BorderLayout;

/**
 * 旋转等待的dialog
 * @author ZYH
 * @time:2017年7月5日
 */
public class WaitUtil extends JDialog {
   
    private static final long serialVersionUID = 6987303361741568128L;
    private final JPanel contentPanel = new JPanel();


    /**
     * Create the dialog.
     */
    public WaitUtil() {
        setBounds(0, 0, 232, 94);   
        getContentPane().setLayout(new BorderLayout());
        contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
        getContentPane().add(contentPanel, BorderLayout.CENTER);
        contentPanel.setLayout(null);
        {
            JLabel lblLoading = new JLabel(
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面我来详细说明一下如何使用SwingWorker实现动态加载。 首先,我们需要创建一个SwingWorker的子类,例如: ``` public class MySwingWorker extends SwingWorker<Void, Void> { @Override protected Void doInBackground() throws Exception { // 长时间运行的任务 return null; } @Override protected void done() { // 完成任务后更新UI界面 } } ``` 在上面的代码中,我们定义了一个MySwingWorker类,它继承自SwingWorker类。在doInBackground()方法中,我们可以执行长时间运行的任务,例如加载数据、解析文件等。在done()方法中,我们可以完成任务后更新UI界面,例如添加组件、更新数据等。 接下来,我们可以在UI界面中创建MySwingWorker实例,并调用execute()方法启动后台任务,例如: ``` MySwingWorker worker = new MySwingWorker(); worker.execute(); ``` 在MySwingWorker实例的doInBackground()方法中,我们可以使用SwingUtilities.invokeLater()方法来更新UI界面,例如: ``` @Override protected Void doInBackground() throws Exception { // 长时间运行的任务 SwingUtilities.invokeLater(new Runnable() { @Override public void run() { // 更新UI界面 } }); return null; } ``` 在SwingUtilities.invokeLater()方法中,我们可以更新UI界面,例如显示加载进度条、更新文本等。 最后,在MySwingWorker实例的done()方法中,我们可以完成任务后更新UI界面,例如: ``` @Override protected void done() { // 完成任务后更新UI界面 JFrame frame = new JFrame("动态加载"); frame.setSize(300, 200); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } ``` 在上面的代码中,我们创建了一个JFrame口,并设置了标题、大小、关闭操作等属性,然后显示口。 通过使用SwingWorker类,我们可以实现在请求时动态加载口,同时保持用户界面的响应性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值