您好,登錄后才能下訂單哦!
本文實例為大家分享了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(); // 繪制顏色 } }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。