租用问题

质量为本、客户为根、勇于拼搏、务实创新

< 返回租用问题列表

java怎么实现进度条显示,java 实现

发布时间:2023-08-24 08:10:56

java怎样实现进度条显示

在Java中可以通过使用`JProgressBar`类来实现进度条的显示。
以下是一个简单的例子,演示了怎样在Java中实现进度条的显示:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class ProgressBarExample extends JFrame {
private final JProgressBar progressBar;
private final JButton startButton;
public ProgressBarExample() {
setTitle("进度条示例");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLayout(new FlowLayout());
// 创建进度条
progressBar = new JProgressBar(0, 100);
progressBar.setPreferredSize(new Dimension(250, 30));
progressBar.setStringPainted(true);
// 创建开始按钮
startButton = new JButton("开始");
startButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 启动一个线程更新进度条
new Thread(new Runnable() {
@Override
public void run() {
for (int i = 0; i <= 100; i++) {
final int progress = i;
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
progressBar.setValue(progress);
}
});
try {
Thread.sleep(100); // 摹拟耗时任务
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}).start();
}
});
add(progressBar);
add(startButton);
pack();
setLocationRelativeTo(null);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new ProgressBarExample().setVisible(true);
}
});
}
}
```
在上述代码中,我们创建了一个`JFrame`窗口,其中包括一个`JProgressBar`进度条和一个`JButton`按钮。当点击按钮时,我们启动一个新的线程,通过更新进度条的值来显示进度。
在线程中,我们使用`SwingUtilities.invokeLater()`方法来确保更新操作在事件分发线程中进行,这是由于Swing组件只能在事件分发线程中进行更新操作。
在每次循环中,我们使用`Thread.sleep()`方法来摹拟一个耗时任务。根据实际情况,您可以根据需要修改这个时间间隔。
最后,我们使用`SwingUtilities.invokeLater()`方法来启动全部利用程序,并在事件分发线程中创建并显示`ProgressBarExample`窗口。
通过运行上述代码,您将看到一个包括进度条和开始按钮的窗口。当您点击开始按钮时,进度条将逐步填满,直到到达100%。