ProgressBar java实例
时间: 2023-12-25 08:51:54 浏览: 94
以下是一个简单的Java ProgressBar示例:
```
import javax.swing.*;
import java.awt.*;
public class ProgressBarExample extends JFrame {
private JProgressBar progressBar;
private JButton startButton;
private JLabel statusLabel;
public ProgressBarExample() {
setTitle("Progress Bar Example");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
progressBar = new JProgressBar(0, 100);
progressBar.setValue(0);
progressBar.setStringPainted(true);
startButton = new JButton("Start");
startButton.addActionListener(e -> new ProgressWorker().execute());
statusLabel = new JLabel("Status: Not started");
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(3, 1));
panel.add(progressBar);
panel.add(startButton);
panel.add(statusLabel);
getContentPane().add(panel, BorderLayout.CENTER);
pack();
setLocationRelativeTo(null);
}
private class ProgressWorker extends SwingWorker<Void, Integer> {
@Override
protected Void doInBackground() throws Exception {
for (int i = 0; i <= 100; i++) {
Thread.sleep(50);
publish(i);
}
return null;
}
@Override
protected void process(java.util.List<Integer> chunks) {
int value = chunks.get(chunks.size() - 1);
progressBar.setValue(value);
statusLabel.setText("Status: " + value + "%");
}
@Override
protected void done() {
startButton.setEnabled(true);
statusLabel.setText("Status: Done");
}
}
public static void main(String[] args) {
new ProgressBarExample().setVisible(true);
}
}
```
在这个示例中,我们创建了一个包含进度条、开始按钮和状态标签的窗口。当用户点击开始按钮时,我们启动一个后台线程来模拟进度,并使用SwingWorker类来更新进度条和状态标签。当进度完成时,我们使开始按钮可用,并将状态标签设置为“完成”。
你可以根据需要自定义进度条的最小值、最大值和步长,并在进度条上显示百分比或任何其他文本。
阅读全文