當前位置:編程學習大全網 - 源碼下載 - 用 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();

}

}

}

  • 上一篇:微信小程序如何盈利,小程序開發的盈利模式有哪些
  • 下一篇:房子貼了墻紙後有刺鼻的味道是什麽原因
  • copyright 2024編程學習大全網