如何能实现随着SWT的ProgressBar进度加大,从0~100,颜色按比率从红色变成绿色?
解决方案 »
- 我想复制一个BufferedImage对象,但无法使用clone()方法,大家说怎么办?
- 关于字符编码的问题
- java笔试帖 今天又栽在一个简单题目上
- JOGL的安装配置方法?
- 请教:<html:image page="/form/submit.bmp" property="submitBMP" />中的property的属性有什么作用?感谢。
- 可编辑的JComboBox如何响应键盘消息?
- 我做一个随着输入变化的曲线applet嵌入jsp页面,是否需要设两个线程??
- 请问方法中参数个数相同但参数类型不同,该算是overload(重载)吗?
- 有谁用过java写过游戏?
- 请问都用什么编译java那,jdk或vj++?那一个更好那?好在那里?(一定给分)
- 怎么样将一个编译好的java类打成包使其能直接运行,给点源代码:
- 一行文字开头的空格替换的正则方法
楼主【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
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());
}
}