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);// 绘制矩形
}
}
}