- Swing 编程示例
- 示例 — 主页
- 示例 — 环境设置
- 示例 — 边界
- 示例 — 按钮
- 示例 — 复选框
- 示例 — 组合框
- 示例 — 颜色选择器
- 示例 — 对话框
- 示例 — 编辑器窗格
- 示例 — 文件选择器
- 示例 — 格式化文本字段
- 示例 — 框架
- 示例 — 列表
- 示例 — 布局
- 示例 — 菜单
- 示例 — 密码字段
- 示例 — 进度条
- 示例 — 滚动窗格
- 示例 — 滑块
- 示例 — 旋转控件
- 示例 — 表格
- 示例 — 工具栏
- 示例 — 树
- Swing 实用资源
- Swing — 快速指南
- Swing — 实用资源
- Swing — 讨论
Swing 示例 — 显示不定进度条
以下示例展示了如何在 Java Swing 应用中显示不确定进度条。
我们使用以下 API。
JProgressBar − 创建进度条字段。
JProgressBar.setIndeterminate − 将进度条设置为不确定模式。
JProgressBar.setValue − 设置进度条中的进度。
示例
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class SwingTester { private JFrame mainFrame; private JLabel headerLabel; private JLabel statusLabel; private JPanel controlPanel; public SwingTester(){ prepareGUI(); } public static void main(String[] args){ SwingTester swingControlDemo = new SwingTester(); swingControlDemo.showProgressBarDemo(); } private void prepareGUI(){ mainFrame = new JFrame("Java Swing Examples"); mainFrame.setSize(400,400); mainFrame.setLayout(new GridLayout(3, 1)); mainFrame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent windowEvent){ System.exit(0); } }); headerLabel = new JLabel("", JLabel.CENTER); statusLabel = new JLabel("",JLabel.CENTER); statusLabel.setSize(350,100); controlPanel = new JPanel(); controlPanel.setLayout(new FlowLayout()); mainFrame.add(headerLabel); mainFrame.add(controlPanel); mainFrame.add(statusLabel); mainFrame.setVisible(true); } private JProgressBar progressBar; private Task task; private JButton startButton; private JTextArea outputTextArea; private void showProgressBarDemo(){ headerLabel.setText("Control in action: JProgressBar"); progressBar = new JProgressBar(0, 100); progressBar.setIndeterminate(true); progressBar.setValue(0); progressBar.setStringPainted(true); startButton = new JButton("Start"); outputTextArea = new JTextArea("",5,20); JScrollPane scrollPane = new JScrollPane(outputTextArea); startButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { task = new Task(); task.start(); } }); controlPanel.add(startButton); controlPanel.add(progressBar); controlPanel.add(scrollPane); mainFrame.setVisible(true); } private class Task extends Thread { public Task(){ } public void run(){ for(int i =0; i<= 100; i+=10){ final int progress = i; SwingUtilities.invokeLater(new Runnable() { public void run() { progressBar.setIndeterminate(false); progressBar.setValue(progress); outputTextArea.setText(outputTextArea.getText() + String.format("Completed %d%% of task.\n", progress)); } }); try { Thread.sleep(100); } catch (InterruptedException e) {} } } } }
swingexamples_progress_bars.htm
广告