亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java實現(xiàn)顏色漸變效果

 更新時間:2018年12月06日 15:24:41   作者:落楓飄飄  
這篇文章主要為大家詳細介紹了Java實現(xiàn)顏色漸變效果的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下

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

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

運行效果:(圖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對象中繪制顏色
 
  /**
   * 構(gòu)造方法
   */
  public ImagePanel() {
    this.setPreferredSize(new Dimension(width, height)); // 設(shè)置首選大小
  }
 
  /**
   * 初始化顏色
   */
   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)); // 設(shè)置顏色
       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); // 設(shè)置黑色
     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); // 設(shè)置窗體關(guān)閉時退出程序
     ImagePanel imgPanel = new ImagePanel(); // 實例化圖片顯示面板
     f.getContentPane().add(imgPanel); // 添加到窗體
     f.pack(); // 根據(jù)窗體子組件的首選大小進行調(diào)整
     f.setLocationRelativeTo(null); // 設(shè)置窗體在屏幕中居中顯示
     f.setVisible(true); // 顯示窗體
     imgPanel.initColor(); // 繪制顏色
   }
 }

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論