Java实现实时进度查询功能
时间: 2023-10-16 19:21:05 浏览: 36
要实现实时进度查询功能,可以使用Java中的多线程技术和进度条组件。
以下是一个简单的示例代码:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class ProgressDemo extends JFrame implements ActionListener {
private JButton startButton;
private JProgressBar progressBar;
private JLabel progressLabel;
private Timer timer;
private int progress;
public ProgressDemo() {
setTitle("进度条示例");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 100);
setLocationRelativeTo(null);
startButton = new JButton("开始");
startButton.addActionListener(this);
progressBar = new JProgressBar(0, 100);
progressBar.setStringPainted(true);
progressLabel = new JLabel("进度:0%");
JPanel panel = new JPanel(new GridLayout(3, 1));
panel.add(startButton);
panel.add(progressBar);
panel.add(progressLabel);
add(panel);
timer = new Timer(1000, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
progress++;
progressBar.setValue(progress);
progressLabel.setText("进度:" + progress + "%");
if (progress >= 100) {
timer.stop();
startButton.setEnabled(true);
}
}
});
}
public static void main(String[] args) {
ProgressDemo demo = new ProgressDemo();
demo.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == startButton) {
progress = 0;
timer.start();
startButton.setEnabled(false);
}
}
}
```
在这个示例代码中,我们创建了一个继承自JFrame的ProgressDemo类,实现了ActionListener接口。在构造函数中创建了一个JButton、一个JProgressBar和一个JLabel,并将它们添加到一个JPanel中。我们使用GridLayout布局管理器让它们依次排列。
我们使用了一个Timer对象来模拟进度的增长。在actionPerformed方法中,我们检查事件源是否为开始按钮,如果是,就将进度重置为0,启动定时器并禁用开始按钮。在timer的ActionListener中,我们增加进度值,更新进度条和进度标签的值,并检查进度是否达到100。如果达到了,就停止定时器并启用开始按钮。
这个示例代码只是一个简单的演示,实际使用中,我们需要根据具体的需求进行修改和扩展。