例子代码如下:

非常简单的例子,重点在Thread的run方法里面:

import java.awt.Button;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

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

/**
 * 渐变色测试
 * @author HUANGGR
 *
 */
public class GradientTest extends JFrame implements ActionListener{

JButton resultBtn;
JButton startBtn,endBtn;
GradientTest(){
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLayout(null);
this.setSize(300,300);

startBtn = new JButton("start color");
startBtn.setBounds(20, 20, 100, 30);
startBtn.setEnabled(false);
this.add(startBtn);

endBtn = new JButton("end color");
endBtn.setBounds(140, 20, 100, 30);
endBtn.setEnabled(false);
this.add(endBtn);

resultBtn = new JButton("result");
resultBtn.setBounds(80, 70, 100, 30);
this.add(resultBtn);
resultBtn.addActionListener(this);

this.setVisible(true);
}

class ColorRunThread implements Runnable{

@Override
public void run() {
int oldR = 10 ,oldG =10,oldB =10;
int newR = 100 ,newG =200, newB =75;
Color oldColor = new Color(oldR,oldG,oldB);  //初始颜色
Color newColor = new Color(newR,newG,newB);  //结束颜色

startBtn.setBackground(oldColor);
endBtn.setBackground(newColor);
int step = 20;  //分多少步完成
for(int i = 1 ; i <= step; i++){
try {
Thread.sleep(50);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int r = oldColor.getRed() + (newColor.getRed() - oldColor.getRed())*i/step;
int g = oldColor.getGreen() + (newColor.getGreen() - oldColor.getGreen())*i/step;
int b = oldColor.getBlue() + (newColor.getBlue() - oldColor.getBlue())*i/step;
Color tempColor = new Color(r,g,b);
resultBtn.setBackground(tempColor);
}

}

}

public static void main(String[] args) {

new GradientTest();
}

@Override
public void actionPerformed(ActionEvent arg0) {
Thread t = new Thread(new ColorRunThread());
t.start();
}

}

java颜色渐变算法例子相关推荐

  1. C#:实现颜色渐变算法​(附完整源码)

    C#:实现颜色渐变算法 public static List<Color> GetSingleColorList(Color srcColor, Color desColor, int c ...

  2. C# 简单的颜色渐变算法

    今天要用到一个颜色渐变的算法,网上看了很多,觉得都太繁琐,索性自己写一个.话不多说,直接上代码! **这是用来获取某一颜色段的分度集合**/// <summary>/// 获得某一颜色区间 ...

  3. JS 处理十六进制颜色渐变算法-输入颜色,输出渐变rgb数组

    html颜色有几种表示方式: 英文单词颜色值:background-color:Blue: 十六进制颜色值:background-color:#FFFFFF:  RGB颜色值三元数字:backgrou ...

  4. c语言rgb数值颜色渐变算法,颜色渐变算法

    需求: 给定一组数据,给定渐变颜色两端的颜色值,需要根据这组数据中的每个值大小为其分配一个颜色 算法: 一个需要用颜色表示值大小的数据集weightlist,给定渐变的起始颜色 colorStart= ...

  5. [js] 颜色渐变算法

    给定一组数据,给定渐变颜色两端的颜色值,需要根据这组数据中的每个值大小为其分配一个颜色 https://www.cnblogs.com/pozhu15/p/11951320.html // 颜色,根据 ...

  6. html边框颜色线性渐变,css3设置边框颜色渐变的方法有哪些

    css3设置边框颜色渐变的方法有哪些 发布时间:2020-09-14 14:51:54 来源:亿速云 阅读:110 作者:小新 css3设置边框颜色渐变的方法有哪些?这个问题可能是我们日常学习或工作经 ...

  7. Android画个颜色渐变的圆环玩玩

    先看下最终的效果 开始实现 新建一个DoughnutView继承View public class DoughnutView extends View {} 先重写onMeasure方法,为什么要重写 ...

  8. CSS 颜色渐变生成器

    手工挑选颜色来制作颜色渐变需要设计经验和对色彩和谐的良好理解.如果您需要背景或 UI 元素的渐变,但又没有足够的信心自己处理任务(或者如果您很着急),则 Color gradient generato ...

  9. java horizontalbarchart_Android-MPChart,HorizontalBarChart 水平柱状图颜色渐变

    1.新建color.xml文件,在res/values路径下新建color.xml文件 文件内容: #ffcc0000 #ff00ddff 2. 在java代码中设置颜色 //1. 找到定义的2个颜色 ...

最新文章

  1. 浅说——九讲背包之01背包
  2. 一些很实用且必用的小脚本代码:
  3. 我心目中的编程高手(转)
  4. Delphi在创建和使用DLL的时候如果使用到string,请引入ShareMem单元
  5. 为什么叫欧文德鲁大叔
  6. 语言怎么绘画人物肖像_绘画丨毛焰 Mao Yan 作品
  7. java 注解 runtime_自定义注解之运行时注解(RetentionPolicy.RUNTIME)
  8. 浙大PAT甲级题目1081-1100详细代码解答|标准答案|C++语言|浙软机考
  9. Word生成目录后,二级,三级目录页码处与一级目录不齐
  10. java面试常见知识点
  11. centos 7 安装sql 审核工具 inception + archer
  12. 用外置的tocat运行springboot项目的四个步骤
  13. k37.第十五章 K8s运维篇-Prometheus监控 (三)
  14. 基于L298N的STM32的直流电机PWM调速控制 原理及注意事项
  15. uIP无操作系统(裸机)移植
  16. 吸引力法则和《秘密》的理论其实不存在
  17. 线性代数学习笔记——第三十八讲——直线与直线的位置关系
  18. vue 批量图片上传
  19. cannot re-initialize CUDA in forked subprocess.To use CUDA with multiprocessing,you must use the ...
  20. 目录非空无法删除?请先删除.fuse_hidden文件,再 rm -rf 删除文件夹

热门文章

  1. Vue3(撩课学院)笔记02-创建组件,全局组件,局部组件,父子组件,组件标签化,组件的data数据共享,组件间通讯,props,父传子$ref,子传父$parent
  2. Java-SpringBoot:员工管理系统
  3. 增值税发票开票软件(税务UKey版) 发邮件提示连接邮件服务器失败
  4. 使用selenium解决滑块验证的问题
  5. 对CC系列知识共享许可证的理解及整理(CC BY-NC-SA 4.0的使用方法)
  6. 智慧路灯建设:智能路灯管理系统对智慧城市的重要性
  7. 在dos中分析线程死锁堆栈消息的案例----用Thread简单Demo,教会你如何分析堆栈消息
  8. java gc 对象可达性_JVM垃圾回收系列---GC Roots可达性分析
  9. db2判断字符为空_DB2函数——常用函数整理
  10. 如何选择适合你的兴趣爱好(四十四),武当