zoukankan      html  css  js  c++  java
  • [转载]java 进度条

    原文地址:java 进度条作者:一度_何成飞

    import java.awt.Canvas;
    import java.awt.Color;
    import java.awt.Graphics;

    public class MyProgressBar extends Canvas {
     private float scaleSize;
     private float currentValue;
     
     public MyProgressBar(){
      this(100, 50);
     }
     
     public MyProgressBar(float scaleSize, float currentValue){
      this.scaleSize = scaleSize;
      this.currentValue = currentValue;
      
      this.setBackground(Color.lightGray);
      this.setForeground(Color.magenta);
      setSize(150, 25);
     }
     
     public float getCurrentValue() {
      return currentValue;
     }
     public void setCurrentValue(float currentValue) {
      this.currentValue = Math.max(0, currentValue);
      if (this.scaleSize < this.currentValue) {
       this.currentValue = this.scaleSize;
      }
     }
     public float getScaleSize() {
      return scaleSize;
     }
     public void setScaleSize(float scaleSize) {
      this.scaleSize = Math.max(1.0f, scaleSize);
      if (this.scaleSize < this.currentValue) {
       this.scaleSize = this.currentValue;
      }
     }

     public synchronized void paint(Graphics g){
      int w = getSize().width;
      int h = getSize().height;
      
      g.setColor(getBackground());
      g.fillRect(1, 1, w-2, h-2);
      g.fill3DRect(0, 0, w-1, h-1, true);
      
      g.setColor(getForeground());
      g.fillRect(3, 3, (int)(currentValue*(w-6)/scaleSize), h-6);
     }
    }

     

    import java.awt.FlowLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;

    import javax.swing.JButton;
    import javax.swing.JFrame;

    public class TestMyProgressBar extends JFrame implements Runnable,
      ActionListener {

     private MyProgressBar bar;
     private JButton btnStart;
     static TestMyProgressBar tmpb;

     public TestMyProgressBar() {
      setSize(400, 300);
      setLocation(400, 400);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setTitle("演示自定义进度条");
      setLayout(new FlowLayout());
      btnStart = new JButton("开始");
      this.add(btnStart);
      btnStart.addActionListener(this);
      bar = new MyProgressBar();
      setVisible(true);
     }

     public static void main(String[] args) {
      tmpb = new TestMyProgressBar();
     }

     @Override
     public void run() {
      for (int i = 1; i <= 20; i++) {
       int x = i * 5;
       bar.setCurrentValue(x);
       if (x > 0 && x < 100) {
        btnStart.setEnabled(false);
       }
       if (x == 100) {
        btnStart.setEnabled(true);
       }
       try {
        Thread.sleep(200);
        add(bar);
        
       } catch (InterruptedException e) {
        e.printStackTrace();
       }
      }
     }

     @Override
     public void actionPerformed(ActionEvent e) {
      if (e.getActionCommand().equals("开始")) {
       Thread t = new Thread(tmpb);
       t.start();
      }
     }
    }

  • 相关阅读:
    object-c iOS 教程 git for mac
    mac Git本地服务器配置
    [转]XCode中修改缺省公司名称/开发人员名称
    IOS------Warning
    Linux---CentOS 定时运行脚本配置练手
    微信公众号一些错误的原因错误代码41001
    微信支付的一些新的经验总结
    关于THINKPHP5模型关联的初步理解
    写下thinkphp5和thinkphp3.2的不同
    练手THINKPHP5过程和bootstrap3.3.7
  • 原文地址:https://www.cnblogs.com/liuzhuqing/p/7481078.html
Copyright © 2011-2022 走看看