2024年6月1日发(作者:)
java线性渐变
实现线性渐变可以使用包下的LinearGradientPaint类,该类的构造方
法主要有如下几种重载形式。
LinearGradientPaint(float startX , float startY , float endX , float endY , float[] fractions ,
Color[] colors) 其中,startX和startY表示颜色渐变轴起始点的x与y坐标;endX和
endY则表示颜色渐变轴终点的x与y坐标;fractions是一组范围从0.0f到1.0f的之间
的数字,用于指定渐变的颜色分布;colors则是一组颜色,每个颜色都分别与fractions
数组中的范围相应。
LinearGradientPaint(float startX , float startY , float endX , float endY , float[] fractions ,
Color[] colors,ethod cycleMethod) 同上。cycleMethod参
数用于设置颜色的循环模式,可选值及其含义如表11-1所示。
表11-1 ethod类中的常量
常量名
NO_CYCLE
REFLECT
REPEAT
含义
如果颜色渐变范围没有覆盖整个被填充的图形,那么将使用渐变轴终点处
的颜色填充剩余区域。此常量为默认值。
如果颜色渐变范围没有覆盖整个被填充的图形,那么将按照从头到尾,从
尾到头的顺序循环渐变颜色,填充剩余区域
如果颜色渐变范围没有覆盖整个被填充的图形,那么将按照从头到尾的顺
序循环渐变颜色,填充剩余区域
下面通过一个实现
JPanel渐变的实例,说明线性渐变的使用。代码如下所示。
import .*;
import .*;
import .*;
public class GradientPanel extends JPanel
{
public GradientPanel(LayoutManager lm)
{
super(lm); //继承父类
}
public void paintComponent(Graphics g)
{
omponent(g); //继承父类
if (!isOpaque())
{
return;
}
Color control = or("control"); //设置颜色
int width = getWidth(); //设置宽度
int height = getHeight(); //设置宽度
Graphics2D g2 = (Graphics2D) g; //将g强制转换为Graphics2D类型
Paint storedPaint = nt();
//设置渐变颜色
nt(new GradientPaint(0, 0, , width, height,control));
ct(0, 0, width, height); //填充渐变
nt(storedPaint);
}
public static void main(String args[])
{
//实例化JFrame对象并设置标题
JFrame jf=new JFrame("线性渐变");
//设置窗体中关闭按钮的状态
aultCloseOperation(E_ON_CLOSE);
//新建组件并设置面板布局
GradientPanel gp=new GradientPanel(new BorderLayout());
("Center",new JLabel("线性渐变")); //向面板中添加标签
tentPane().add(gp); //向面板中添加布局
e(300,200); //设置窗口大小
ible(true); //设置窗口显示
}
}
在上述代码中,主要实现的功能是对窗体主界面进行颜色渐变。在代码中通过
重定paintComponent()方法实现该功能。在paintComponent()方法中继承了该对象的
父类,先用or()设置颜色,然后用Graphics2D类的setPaint()方法
设置颜色,fillRect()方法填充颜色。执行上述代码,结果如图11-6所示。
图11-6 线性渐变


发布评论