Java 为图形填充渐变色

版权声明:文章版权归作者所有,请不要随意转载抄袭,情节严重,追究法律责任!! https://blog.csdn.net/Ibelievesunshine/article/details/84475631

1. 首先在项目中创建一个继承 JFrame 类的 FillGradientFrame 窗体类

2. 在 FillGradientFrame 窗体类中,创建内部面板类 FillGradientFrame ,并重写 JComponent 类的 paint() 方法,在该方法中使用 Graphics2D 类的 setPaint() 方法设置封装了渐变色的对象,该对象是通过 GradientPaint 类创建的。

3. 将内部面板类 FillGradientPanel 的实例,添加到窗体类 FillGradientFrame 的内容面板上,用于在窗体上显示填充了渐变色的图像。

package com.wk.image

import java.awt.Color;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.Rectangle2D;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class FillGradientFrame extends JFrame {
    FillGradientPanel fillGradientPanel = new FillGradientPanel(); // 创建面板类的实例
    public static void main(String args[]) { // 主方法
        FillGradientFrame frame = new FillGradientFrame(); // 创建窗体类的实例
        frame.setVisible(true); // 显示窗体
    }
    
    public FillGradientFrame() {
        super(); // 调用超类的构造方法
        setTitle("为图形填充渐变色"); // 窗体标题
        setBounds(100, 100, 340, 360); // 窗体的显示位置和大小
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 窗体关闭方式
        add(fillGradientPanel); // 将面板类的实例添加到窗体容器中
    }
    
    class FillGradientPanel extends JPanel { // 创建内部面板类
        public void paint(Graphics g) { // 重写paint()方法
            Graphics2D g2 = (Graphics2D) g; // 获得Graphics2D对象
            Rectangle2D.Float rect = new Rectangle2D.Float(20, 20, 280, 280);// 创建矩形对象
            // 创建循环渐变的GraphientPaint对象
            GradientPaint paint = new GradientPaint(20,20,Color.BLUE,100,100,Color.RED,true);
            g2.setPaint(paint);// 设置渐变
            g2.fill(rect);// 绘制矩形
        }
    }
}

猜你喜欢

转载自blog.csdn.net/Ibelievesunshine/article/details/84475631