areatest.java

来自「java learn PPT java learn PPT java learn」· Java 代码 · 共 72 行

JAVA
72
字号
     import java.applet.*;
     import java.awt.*;
     import java.awt.event.*;
     import java.awt.geom.*;
     import java.util.*;
          
     public class AreaTest extends Applet 
     {  
          // 一个Area对象数组和一个对应的几何描述String数组
          private Area[] shapes;
          private String[] ops;

          public void init()
          {
               // 创建4个Area对象和对应的String
               shapes = new Area[4];
               ops = new String[4];

               // 创建2个在原点附近重叠的圆
               Ellipse2D e1 = new Ellipse2D.Double(-0.125, 0.0, 0.5, 0.5);
               Ellipse2D e2 = new Ellipse2D.Double(+0.125, 0.0, 0.5, 0.5);

               // 创建两个形状的并集
               shapes[0] = new Area(e1);
               shapes[0].add(new Area(e2));
               ops[0] = "Union";

               // 从e1中减去e2
               shapes[1] = new Area(e1);
               shapes[1].subtract(new Area(e2));
               ops[1] = "Subtraction";

               // 创建两个形状之间的补集
               shapes[2] = new Area(e1);
               shapes[2].intersect(new Area(e2));
               ops[2] = "Intersection";

               // 在两个形状间使用异或(Exclusive OR)操作
               shapes[3] = new Area(e1);
               shapes[3].exclusiveOr(new Area(e2));
               ops[3] = "XOR";
          }

          public void paint(Graphics g)
          {
               // 把传入的Graphics容器转换为一个可用的 Graphics2D 对象
               Graphics2D g2d = (Graphics2D)g;

               // 创建一个笔划来描述形状的外形
               g2d.setStroke(new BasicStroke(2.0f/100.0f));

               // 用来产生随机颜色的Random对象
               Random r = new Random();
 
               // 绘制形状和操作描述
               for(int i = 0; i < 4; i++)
               {
                    g2d.setTransform(new AffineTransform());
                    g2d.translate(50+(i*100), 40);

                    g2d.drawString(ops[i], 0, 70);                 

                    g2d.scale(100, 100);
         
                    g2d.setPaint(new Color(r.nextInt()));
                    g2d.fill(shapes[i]);
                    g2d.setPaint(Color.BLACK);
                    g2d.draw(shapes[i]);
               }
          }

     }    // AreaTest

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?