中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java實現顏色漸變效果

發布時間:2020-10-13 08:29:49 來源:腳本之家 閱讀:698 作者:落楓飄飄 欄目:編程語言

本文實例為大家分享了Java實現顏色漸變效果的具體代碼,供大家參考,具體內容如下

RGB色彩,在自然界中肉眼所能看到的任何色彩都可以由紅(R)、綠(G)、藍(B)這三種色彩混合疊加而成,因此我們只要遞增遞減的修改其特定值就能得到相應的漸變效果。

運行效果:(圖1)

Java實現顏色漸變效果

運行5秒后:(圖2)

Java實現顏色漸變效果

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(); // 繪制顏色
   }
 }

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

惠来县| 韶关市| 东乌珠穆沁旗| 桑日县| 荥阳市| 黔江区| 桃园市| 馆陶县| 菏泽市| 磴口县| 金乡县| 邓州市| 潞城市| 竹北市| 虞城县| 天镇县| 南宁市| 洛扎县| 东乡| 衡南县| 泸州市| 盖州市| 社旗县| 临沧市| 加查县| 水富县| 汉阴县| 彰武县| 托里县| 东城区| 和静县| 兴海县| 西藏| 肇庆市| 古田县| 武宁县| 临城县| 甘泉县| 永丰县| 枣庄市| 东丽区|