Java开发1200例第50例:纹理填充特效(源码)

本文为Java开发实例系列的第50篇,重点介绍如何实现纹理填充特效,并提供完整的源码分析,帮助开发者理解并掌握这一技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.TexturePaint;
import java.awt.geom.Rectangle2D;
import java.awt.geom.Rectangle2D.Float;
import java.awt.image.BufferedImage;

import javax.swing.JFrame;
import javax.swing.JPanel;


public class TextureFillFrame extends JFrame{
 TextureFillPanel panel = null;
 
 public TextureFillFrame(){
  this.setTitle("纹理填充特效");
  this.setBounds(100, 100, 400, 300);
  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  this.setResizable(false);
  panel = new TextureFillPanel();
  this.add(panel);
 }
 
 public static void main(String[] args){
  TextureFillFrame frame = new TextureFillFrame();
  frame.setVisible(true);
 }
 class TextureFillPanel extends JPanel{
  
  public void paint(Graphics g){
   //得到缓冲流对象
   BufferedImage image = new BufferedImage(200, 200, BufferedImage.TYPE_INT_RGB);
   Graphics2D g2 = (Graphics2D)image.getGraphics(); //取得缓冲流的Graphics2D对象
   g2.setColor(Color.BLUE);      //设置颜色
   g2.fillRect(0, 0, 90, 90);    //绘制填充矩形
   g2.setColor(Color.RED);       //设置颜色
   g2.fillOval(95, 95, 90, 90);  //绘制填充圆形
   Rectangle2D.Float rect = new Rectangle2D.Float(10, 10, 20, 20);  //创建Rectangle2D对象
   TexturePaint textPaint = new TexturePaint(image, rect);          //创建纹理填充对象
   Graphics2D graphics2 = (Graphics2D)g;                            //得到Graphics2D对象
   graphics2.setPaint(textPaint);                                   //设置纹理填充对象
   Rectangle2D.Float ellipse2 = new Rectangle2D.Float(45, 25, 200, 200);  //创建矩形对象
   graphics2.fill(ellipse2);       //绘制填充纹理的矩形
  }
 }
}


 

注意:本文需掌握的主要是TexturePaint类的使用方法,该类的构造方法如下:

TexturePaint(BufferedImage txtr,Rectangle2D anchor)



txtr

具有用于绘制的纹理的 BufferedImage 对象



anchor

用户空间中用于定位和复制纹理的 Rectangle2D


 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值