Java实现颜色渐变效果

本文实例为大家分享了Java实现颜色渐变效果的具体代码,供大家参考,具体内容如下

RGB色彩,在自然界中肉眼所能看到的任何色彩都可以由红(R)、绿(G)、蓝(B)这三种色彩混合叠加而成,因此我们只要递增递减的修改其特定值就能得到相应的渐变效果。

运行效果:(图1)

运行5秒后:(图2)

Java源代码:

 import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.image.BufferedImage;

 import javax.swing.JFrame;
 import javax.swing.JPanel;

 /**
 * 图片显示面板类<br>
 * 颜色渐变效果测试
 *
 * @author WQL
 *
 */
 public class ImagePanel extends JPanel {
  private static final long serialVersionUID = 1L;
  private int height = 350; // 高度
  private int width = 600; // 宽度
  private BufferedImage bufImg = null; // 在该BufferedImage对象中绘制颜色

  /**
   * 构造方法
   */
  public ImagePanel() {
    this.setPreferredSize(new Dimension(width, height)); // 设置首选大小
  }

  /**
   * 初始化颜色
   */
   private void initColor() {
     bufImg = new BufferedImage(width, height, BufferedImage.TYPE_4BYTE_ABGR);// 实例化BufferedImage
     Graphics g = bufImg.getGraphics(); // 获取图片的Graphics
     int w = width / 6; // 分成六个部分进行绘制
     for (int i = 0; i < w; i++) {
       int x = 0;
       int d = (int) (i * (255.0 / w)); // 使d从0递增到255,实际可能只是接近255
       // 画第一部分颜色---红色到黄色
       g.setColor(new Color(255, d, 0)); // 设置颜色
       g.drawLine(i + w * x, 0, i + w * x++, height); // 画直线---一条单色竖线
       // 画第二部分颜色---黄色到绿色
       g.setColor(new Color(255 - d, 255, 0));
       g.drawLine(i + w * x, 0, i + w * x++, height);
       // 画第三部分颜色---绿色到青色
       g.setColor(new Color(0, 255, d));
       g.drawLine(i + w * x, 0, i + w * x++, height);
       // 画第四部分颜色---青色到蓝色
       g.setColor(new Color(0, 255 - d, 255));
       g.drawLine(i + w * x, 0, i + w * x++, height);
       // 画第五部分颜色---蓝色到洋红色
       g.setColor(new Color(d, 0, 255));
       g.drawLine(i + w * x, 0, i + w * x++, height);
       // 画第六部分颜色---洋红色到红色
       g.setColor(new Color(255, 1, 255 - d));
       g.drawLine(i + w * x, 0, i + w * x++, height);
     }
     repaint(); // 重绘
     try {
       System.out.println("5秒后绘制黑色分隔线..");
       Thread.sleep(5000); // 线程休息
     } catch (InterruptedException e) {
       e.printStackTrace();
     }
     // 绘制黑线来隔开六个部分
     System.out.println("开始绘制黑色分隔线...");
     g.setColor(Color.BLACK); // 设置黑色
     for (int i = 1; i < w; i++) {
       g.drawLine(i * w, 0, i * w, height); // 画直线
     }
     repaint(); // 重绘
   }

   /**
   * 绘制图片
   */
   public void paint(Graphics g) {
     g.drawImage(bufImg, 0, 0, null); // 画图片
   }

   /**
   * 主方法
   */
   public static void main(String[] args) {
     JFrame f = new JFrame("颜色渐变效果"); // 实例化一个窗体
     f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置窗体关闭时退出程序
     ImagePanel imgPanel = new ImagePanel(); // 实例化图片显示面板
     f.getContentPane().add(imgPanel); // 添加到窗体
     f.pack(); // 根据窗体子组件的首选大小进行调整
     f.setLocationRelativeTo(null); // 设置窗体在屏幕中居中显示
     f.setVisible(true); // 显示窗体
     imgPanel.initColor(); // 绘制颜色
   }
 }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Javacript实现颜色梯度变化和渐变的效果代码

    对于本站的导航栏,想做点什么.所以,选择了用js对导航栏的颜色做了梯度的变化处理. 起初,觉得用opacity属性(透明度)来改变颜色的梯度变化.不过,这样会出现一个问题. 每一个导航标签用的是[li],当鼠标浮动到标签上时,通过onmouseover()立即改变[li]的className,并用setInterval()来使其opacity(透明度)由0变到1.不过,当鼠标离开时,对于[li]标签的颜色恢复的处理貌似麻烦了许多.所以,很快就放弃了这个做法,换种思路. 到百度上一搜,看到了一篇很

  • Java实现颜色渐变效果

    本文实例为大家分享了Java实现颜色渐变效果的具体代码,供大家参考,具体内容如下 RGB色彩,在自然界中肉眼所能看到的任何色彩都可以由红(R).绿(G).蓝(B)这三种色彩混合叠加而成,因此我们只要递增递减的修改其特定值就能得到相应的渐变效果. 运行效果:(图1) 运行5秒后:(图2) Java源代码: import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import java.awt.image

  • js+HTML5实现canvas多种颜色渐变效果的方法

    本文实例讲述了js+HTML5实现canvas多种颜色渐变效果的方法.分享给大家供大家参考.具体实现方法如下: <!DOCTYPE html> <html> <body> <canvas id="myCanvas" width="200" height="100" style="border:1px solid #c3c3c3;"> Your browser does not s

  • 神奇!js+CSS+DIV实现文字颜色渐变效果

    本文实例为大家分享了DIV+CSS+JS实现的文字颜色渐变效果,供大家参考,具体内容如下 下面是 CSS 部分代码: <!--CSS代码开始--> body{ font:12px/1.5 Microsoft Yahei; } h3{ padding:10px; margin:0; background-color:#999; color:#fff; font:16px/1.5 Microsoft Yahei; text-align:center; } .box{ position:relati

  • jQuery实现的文字hover颜色渐变效果实例

    本文实例讲述了jQuery实现的文字hover颜色渐变效果.分享给大家供大家参考,具体如下: <html> <head> <script type="text/javascript" src="jquery-1.6.2.min.js"></script> <script type="text/javascript" src="jquery-ui-1.8.16.custom.min.j

  • jQuery实现字体颜色渐变效果的方法

    本文实例讲述了jQuery实现字体颜色渐变效果的方法.分享给大家供大家参考,具体如下: jQuery不允许css属性值为非数字的属性进行动画处理, 比如.animate(color:'red',500)或是.animate(fontWeight:'bold',500)都无法运行, 因此如果想实现颜色渐变的效果需要animate()外的其他方法,示例如下 方法1: <!DOCTYPE html> <html lang="en"> <head> <

  • JavaScript实现的鼠标响应颜色渐变效果完整实例

    本文实例讲述了JavaScript实现的鼠标响应颜色渐变效果.分享给大家供大家参考,具体如下: 运行效果图如下: 完整代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/199

  • Intellj Idea中的maven工程Java文件颜色不对,未被识别的解决

    问题: 打开一个新的maven工程,发现.Java文件是这样的: 其实是编辑器未识别成maven工程. 解决: 1.点击侧边栏Maven 2.选择导入工程的pox.xml文件 3.恢复正常 补充知识:idea项目在maven projects中显示灰色的解决办法 在使用idea的过程中,遇到其中一个maven模块变成灰色,如下所示: 造成这个的原因可能是忽略了maven模块,可以尝试如下解决方法:在idea中maven的setting中找到ignored files,看右边的面板中是否将变灰的m

  • 漂亮! js实现颜色渐变效果

    今天做组织机构,要分级别显示颜色,自己计算半天也没算出颜色渐变的方法,出来总是花里胡哨的难看的不要不要的,所以查了一下,找到一个js代码,试了试,很完美哦! <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> </head> <body> <script src

  • Javascript 颜色渐变效果的实现代码

    下面就是博主的一些思路和解决办法,如果对此没兴趣,想直接使用jquery插件的同学,可以点这里 思路 每一种颜色由RGB组成,每两位为一个16进制数当前颜色代码和目标颜色代码,转换成10进制数后,是有差值的,利用差值,设定总执行次数的步长,计算每一步变更颜色的10进制数利用定时器执行简单的讲,就是将6位颜色代码以每两位转换为10进制数,然后计算两对RGB值的差,根据设定的步长(执行次数),计算每一步需要增加或减少的RGB值,最后变为目标颜色的RGB值 需要解决的问题 将6位颜色代码转换为10进制

  • java使用颜色选择器示例分享

    复制代码 代码如下: package com.liuxing.test;import java.awt.Color;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JColorChooser;import javax.swing.JFrame;import javax.swing.JLabel;import ja

随机推荐