1、先来段代码:package chapter4;import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.concurrent.TimeUnit;/** * Created by MyWorld on 2016/3/24. */public class SwingJProgressBarDemo { public static void main(String[] args) { JFrame frame = new JFrame("JProgressBarDemo"); frame.setSize(400, 200); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLayout(new FlowLayout()); final JProgressBar progressBar = new JProgressBar(); progressBar.setOrientation(JProgressBar.HORIZONTAL); progressBar.setSize(200, 100); progressBar.setMinimum(0); progressBar.setMaximum(100); frame.add(progressBar); JButton btn = new JButton("Start ProgressBar"); btn.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { new Thread(new Runnable() { @Override public void run() { for (int i = 0; i <= 10; i++) { progressBar.setValue(i * 10); try { TimeUnit.SECONDS.sleep(1); } catch (InterruptedException e1) { e1.printStackTrace(); } } } }).start(); } }); frame.add(btn); frame.setLocationRelativeTo(null); frame.setVisible(true); }}
2、执行下上面的代码,看看效果
3、功能是有,但是有一点不好进度条上显示百分比更改下代码Code:progressBar.setStringPainted(true);
4、执行一下看看效果进度条上已经有进度信息了OK
5、功能是实现了,就是感觉有点土啊使用Substance更改下皮肤更改后的代码:package chapter4;import org.jvnet.substance.skin.SubstanceAutumnLookAndFeel;import javax.swing.*;import javax.swing.plaf.metal.MetalProgressBarUI;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.concurrent.TimeUnit;/** * Created by MyWorld on 2016/3/24. */public class SwingJProgressBarDemo { public static void main(String[] args) throws UnsupportedLookAndFeelException { UIManager.setLookAndFeel(new SubstanceAutumnLookAndFeel());// JFrame.setDefaultLookAndFeelDecorated(true); SwingUtilities.invokeLater(new Runnable() { @Override public void run() { final JFrame frame = new JFrame("JProgressBarDemo"); frame.setSize(400, 200); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLayout(new FlowLayout()); final JProgressBar progressBar = new JProgressBar(); progressBar.setOrientation(JProgressBar.HORIZONTAL); progressBar.setSize(200, 100); progressBar.setMinimum(0); progressBar.setMaximum(100); progressBar.setBorderPainted(true); progressBar.setUI(new MetalProgressBarUI()); progressBar.setBackground(Color.green); progressBar.setForeground(Color.BLUE); progressBar.setStringPainted(true); frame.add(progressBar); JButton btn = new JButton("Start ProgressBar"); btn.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { new Thread((new Runnable() { @Override public void run() { for (int i = 0; i <= 10; i++) { final int finalI = i; SwingUtilities.invokeLater(new Runnable() { @Override public void run() { progressBar.setValue(finalI * 10); } }); try { TimeUnit.SECONDS.sleep(1); } catch (InterruptedException e1) { e1.printStackTrace(); } } } })).start(); } }); frame.add(btn); frame.setVisible(true); } }); }}
6、执行下看看效果很OKO了