java Swing 进度条 时间进度条
2013-06-28 15:15
316 查看
项目中用到了java swing 的时间进度滚动条,所以写了一个 测试类,供大家参考,下面是 具体的实现类
package com.original.client.widget.execcenter;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.Timer;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import net.miginfocom.swing.MigLayout;
/**
*
* @author panghui 2013-6-28
* 消息中心倒计时进度条
*/
public class TestOExecProgressBar implements ActionListener, ChangeListener {
JFrame frame = null;
JProgressBar progressbar;
JLabel label;
Timer timer;
JButton b;
JButton s;
public TestOExecProgressBar() {
frame = new JFrame("安装");
frame.setBounds(100, 100, 400, 130);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container contentPanel = frame.getContentPane();
label = new JLabel("", JLabel.CENTER);
progressbar = new JProgressBar();
progressbar.setOrientation(JProgressBar.HORIZONTAL);
progressbar.setMinimum(0);
progressbar.setMaximum(100);
progressbar.setValue(0);
//progressbar.setStringPainted(true);//设置进度条上边是否显示 百分比
progressbar.addChangeListener(this);// 实现进度条值改变的动态监听
progressbar.setBounds(0, 20, 100, 5);
progressbar.setBorderPainted(false);
progressbar.setForeground(new Color(55,165,228));
progressbar.setBackground(new Color(218,218,218));
JPanel panel = new JPanel(new MigLayout("wrap 2","[grow,100%]","[grow,50%] [grow,50%]"));
panel.setBackground(new Color(255,255,255));
panel.setPreferredSize(new Dimension(400,50));
b = new JButton("安装");
b.setForeground(Color.blue);
b.addActionListener(this);
s = new JButton("停止");
s.setForeground(Color.blue);
s.addActionListener(this);
panel.add(b);
panel.add(s);
panel.add(progressbar,"growx,h 7!,span 2");
timer = new Timer(100, this);
contentPanel.add(panel, BorderLayout.NORTH);
contentPanel.add(label, BorderLayout.SOUTH);
frame.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == b) {
timer.start();
}
if (e.getSource() == s) {
timer.stop();
}
if (e.getSource() == timer) {
int value = progressbar.getValue();
if (value < 100) {
progressbar.setValue(++value);
} else {
timer.stop();
//frame.dispose();
}
}
}
public void stateChanged(ChangeEvent e1) {
int value = progressbar.getValue();
if (e1.getSource() == progressbar) {
label.setText("目前已完成进度:" + Integer.toString(value) + "%");
label.setForeground(Color.blue);
}
}
public static void main(String[] args) {
TestOExecProgressBar app = new TestOExecProgressBar();
}
}
package com.original.client.widget.execcenter;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.Timer;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import net.miginfocom.swing.MigLayout;
/**
*
* @author panghui 2013-6-28
* 消息中心倒计时进度条
*/
public class TestOExecProgressBar implements ActionListener, ChangeListener {
JFrame frame = null;
JProgressBar progressbar;
JLabel label;
Timer timer;
JButton b;
JButton s;
public TestOExecProgressBar() {
frame = new JFrame("安装");
frame.setBounds(100, 100, 400, 130);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container contentPanel = frame.getContentPane();
label = new JLabel("", JLabel.CENTER);
progressbar = new JProgressBar();
progressbar.setOrientation(JProgressBar.HORIZONTAL);
progressbar.setMinimum(0);
progressbar.setMaximum(100);
progressbar.setValue(0);
//progressbar.setStringPainted(true);//设置进度条上边是否显示 百分比
progressbar.addChangeListener(this);// 实现进度条值改变的动态监听
progressbar.setBounds(0, 20, 100, 5);
progressbar.setBorderPainted(false);
progressbar.setForeground(new Color(55,165,228));
progressbar.setBackground(new Color(218,218,218));
JPanel panel = new JPanel(new MigLayout("wrap 2","[grow,100%]","[grow,50%] [grow,50%]"));
panel.setBackground(new Color(255,255,255));
panel.setPreferredSize(new Dimension(400,50));
b = new JButton("安装");
b.setForeground(Color.blue);
b.addActionListener(this);
s = new JButton("停止");
s.setForeground(Color.blue);
s.addActionListener(this);
panel.add(b);
panel.add(s);
panel.add(progressbar,"growx,h 7!,span 2");
timer = new Timer(100, this);
contentPanel.add(panel, BorderLayout.NORTH);
contentPanel.add(label, BorderLayout.SOUTH);
frame.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == b) {
timer.start();
}
if (e.getSource() == s) {
timer.stop();
}
if (e.getSource() == timer) {
int value = progressbar.getValue();
if (value < 100) {
progressbar.setValue(++value);
} else {
timer.stop();
//frame.dispose();
}
}
}
public void stateChanged(ChangeEvent e1) {
int value = progressbar.getValue();
if (e1.getSource() == progressbar) {
label.setText("目前已完成进度:" + Integer.toString(value) + "%");
label.setForeground(Color.blue);
}
}
public static void main(String[] args) {
TestOExecProgressBar app = new TestOExecProgressBar();
}
}
相关文章推荐
- java swing jtable 中加进度条
- Java Swing 创建转圈的进度提示框
- Java Swing 系统时间动态显示
- 我的Java开发学习之旅------>工具类:将播放器的进度值转换成相应的时间格式
- Java Swing日期,时间选择控件
- 《Java 2 图形设计卷Ⅱ- SWING》第11章 进度条、滑杆和分隔条
- Java Swing组件实现进度监视功能示例
- java swing 确定进度条
- 使用Java的Swing操作进度条高级操作
- 分享一个java的UI程序,awt+swing,一个桌球计费系统,按时间计费
- 用java swing写的一个显示时间和实时天气的小程序
- JavaSwing万年历+时间的程序(详细过程)
- Java中Date时间获取与转化(随学习进度不断更新)
- java swing 制作进度条-- 模拟卸载,附效果图
- onething-diancan Java swing点餐系统 花1-2周时间认识swing从别人的项目下改一下
- Java Swing复习(11)进度条(涉及多线程)
- Java核心技术(高级Swing)四进度指示器
- Java查找Map中的日期时间里当前时间最远
- JAVASwing GridBagLayout 布局
- Java中本地时间的获取方法