如何能实现随着SWT的ProgressBar进度加大,从0~100,颜色按比率从红色变成绿色?

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【jiangguilong2000】截止到2008-08-01 11:38:51的历史汇总数据(不包括此帖):
    发帖的总数量:20                       发帖的总分数:950                      每贴平均分数:47                       
    回帖的总数量:19                       得分贴总数量:1                        回帖的得分率:5%                       
    结贴的总数量:12                       结贴的总分数:540                      
    无满意结贴数:2                        无满意结贴分:40                       
    未结的帖子数:8                        未结的总分数:410                      
    结贴的百分比:60.00 %               结分的百分比:56.84 %                  
    无满意结贴率:16.67 %               无满意结分率:7.41  %                  
    楼主加油

    取消马甲机器人,请点这里:http://www.java2000.net/mycsdn/robotStop.jsp?usern=jiangguilong2000
      

  2.   

    重写JProgressBar的UI就可以实现你的需求有3个文件,分别依次是 ProgressBarColor .java
    MyJFrame.java
    MyUI.java以下是代码,你可以试试.
    public class ProgressBarColor { public static void main(String[] args) {
    MyJFrame jF = new MyJFrame();
    }}
    import java.awt.Dimension;
    import java.awt.FlowLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JProgressBar;public class MyJFrame extends JFrame implements Runnable, ActionListener {

    final static int MIN = 0;
    final static int MAX = 255;
    boolean runKey = false;

    JProgressBar jP = new JProgressBar(MIN, MAX);
    JButton jB = new JButton("Start");
    MyUI bPBUI = new MyUI(); 
    public MyJFrame() { setDefaultLookAndFeelDecorated(true);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setSize(500, 80);
    setLayout(new FlowLayout()); jP.setPreferredSize(new Dimension(255, 20));
    jP.setBorderPainted(true);
    jP.setUI(bPBUI);
    jB.addActionListener(this); add(jP);
    add(jB); setVisible(true);
    } public void actionPerformed(ActionEvent e) {
    if(!runKey){
    runKey = true;
    new Thread(this).start();
    }
    } public void run() { int pos = 0;
    while (runKey) {
    pos++;
    bPBUI.setPosition(pos);
    bPBUI.colorChange();
    jP.setValue(pos);
    try {
    Thread.sleep(20);
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    if (pos == MAX)
    runKey = false;
    }
    }}
    import java.awt.Color;
    import java.awt.Graphics;import javax.swing.JComponent;
    import javax.swing.plaf.basic.BasicProgressBarUI;
    public class MyUI extends BasicProgressBarUI { private int pos = 0;
    private int RGB_r = 255;
    private int RGB_g = 0;
    private int RGB_b = 0;


    public MyUI() {

    }

    public void setPosition(int position){
    pos = position;
    }

    public void colorChange(){
    if(RGB_r > 0)RGB_r -= 1;
    if(RGB_g < 255)RGB_g += 1;
    }

    public void paint(Graphics g, JComponent c) {
    g.setColor(new Color(RGB_r, RGB_g, RGB_b));
    g.fillRect(0, 0, pos, c.getHeight());
    }

    }
      

  3.   

    有SWT方面的ProgressBar的例程吗?