本例主要是通过使用坐标轴平移,图形旋转和获得随机数等技术来绘制艺术图案。通过重写JPanel类中的paint()方法,并在该方法中使用Graphics2D类中的translate(),setColor(),ratate()和draw()方法来实现的。具体代码如下:
1. 创建一个ArtDesignPanel类,继承JPanel类,来进行图形的绘制
1 package com.example.artdesign.ui; 2 3 import java.awt.Color; 4 import java.awt.Graphics; 5 import java.awt.Graphics2D; 6 import java.awt.geom.Ellipse2D; 7 import java.util.Random; 8 9 import javax.swing.JPanel; 10 11 /*** 12 * 创建内部面板类 13 * @author lenovo' 14 * 15 */ 16 public class ArtDesignPanel extends JPanel{ 17 18 @Override 19 public void paint(Graphics g) { //重写paint方法 20 // TODO Auto-generated method stub 21 Graphics2D g2 = (Graphics2D)g; //获得Graphics2D对象 22 Ellipse2D.Float ellipse = new Ellipse2D.Float(-80, 5, 160, 10); //创建椭圆对象 23 g2.translate(160, 90); //平移坐标轴 24 25 Random random = new Random(); //获得随机数 26 int R = random.nextInt(256); //随机产生颜色的R值 27 int G = random.nextInt(256); //随机产生颜色的G值 28 int B = random.nextInt(256); //随机产生颜色的B值 29 30 Color color = new Color(R,G,B); //创建颜色对象 31 g2.setColor(color); //指定颜色 32 g2.draw(ellipse); //绘制椭圆 33 34 int i = 0; 35 while (i < 100) { 36 37 R = random.nextInt(256); //随机产生颜色的R值 38 G = random.nextInt(256); //随机产生颜色的G值 39 B = random.nextInt(256); //随机产生颜色的B值 40 41 color = new Color(R,G,B); 42 43 g2.setColor(color); 44 g2.rotate(10); //旋转画布 45 g2.draw(ellipse); //绘制椭圆 46 47 i++; 48 } 49 50 } 51 }