我们在一些网站中经常能够看到进度条,这是提示我们当前加载到什么时候了,本篇文章我们就来看看用java如何写出这么一个时间进度条。
示例: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
{
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常见问题及解决方法的小伙伴就请关注我们网站吧。
推荐阅读:
今天的文章java 进度条时间设置_java进度条时间显示怎么实现?分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/27534.html