在Java中,图形可以进行加运算、减运算、交运算和异或运算等合并运算,其效果就相当于PhotoShop中对选区的加减交等操作类似,在Java中实现图形的合并运算照样是通过重写JComponent类的paint()方法,并在该方法中使用Graphics2D类的draw()方法和Area类来实现的,其中Area类用于封装图形对象
public Area(Shape s); //s是Area类封装的图形对象
public void add(Area rhs);//图形的加运算
public void subtract(Area rhs); //图形的减运算
public void intersect(Area rhs); //图形的交运算
public void exclusiveOr(Area rhs);//图形的异或运算
//rhs是与当前Area对象进行加运算的Area对象
Java的图形操作比较简单,很多人也会觉得这个图形太简单太丑了,根本用不上。其实,简单的图形也是可以创造出很多精美的图片的,这里举个简单的例子,就是用之前的图形操作综合来实现绘制一个由简单几何图形完成的图片
public class FiveDaisyChainPanel extends JPanel {
public void paint(Graphics g) {
Graphics2D g2 = (Graphics2D)g;
BasicStroke stroke = new BasicStroke(5);
g2.setStroke(stroke);
g2.setColor(Color.blue);
g2.drawOval(60, 40, 60, 60);
g2.setColor(Color.black);
g2.drawOval(110, 40, 60, 60);
g2.setColor(Color.red);
g2.drawOval(160, 40, 60, 60);
g2.setColor(Color.yellow);
g2.drawOval(85, 80, 60, 60);
g2.setColor(Color.green);
g2.drawOval(135, 80, 60, 60);
}
}
效果如下: