java swing 制作進度條-- 模擬卸載,附效果圖
利用timer和progressbar外加兩個按鈕制作的小程序,點擊start按鈕開始卸載,點擊stop停止。
代碼如下:
-----------------------------------------------以下是代碼區--------------------------------------------------------------------------
import java.awt.BorderLayout; 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; public class ProgressBar extends JFrame implements ChangeListener, ActionListener { JButton start, stop; JProgressBar bar; JLabel show; JPanel pane, pane1; Timer timer; public ProgressBar(String title) { super(title); init(); pack(); } public void init() { setBounds(300, 100, 300, 100); pane = new JPanel(); pane.setLayout(new BorderLayout()); getContentPane().add(pane); start = new JButton("start"); start.addActionListener(this); stop = new JButton("stop"); stop.addActionListener(this); pane1 = new JPanel(); pane1.add(start); pane1.add(stop); bar = new JProgressBar(); bar.setMinimum(0); bar.setMaximum(100); bar.setValue(100); bar.setStringPainted(true); bar.addChangeListener(this); bar.setPreferredSize(new Dimension(200, 30)); int leave = 100 - bar.getValue(); show = new JLabel("已完成:" + leave, JLabel.CENTER); pane.add(pane1, BorderLayout.NORTH); pane.add(bar, BorderLayout.CENTER); pane.add(show, BorderLayout.SOUTH); timer = new Timer(50, this); } @Override public void stateChanged(ChangeEvent e) { // TODO Auto-generated method stub int value = bar.getValue(); int leave = 100-value; if(e.getSource() == bar) { show.setText("已完成:"+ leave +"%"); } } @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub if(e.getSource() == start) { timer.start(); } else if(e.getSource() == stop) { timer.stop(); bar.setValue(0); } else if(e.getSource() == timer) { int value = bar.getValue(); if(value > 0) { value--; bar.setValue(value); } } } public static void main(String[] args) { new ProgressBar("uninstall").setVisible(true); } }
----------------------------- 以上是代碼區 --------------------------------------------------
運行效果如下:
---------》
------------》
注:本代碼可以直接copy運行
轉自:http://blog.csdn.net/lucherr/article/details/7430987
本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!