当前位置: 首页 > 工具软件 > taiji > 使用案例 >

taiji

穆丁雨
2023-12-01
package test1;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.Shape;
import java.awt.geom.Area;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Ellipse2D.Double;
import java.awt.geom.Rectangle2D;

import javax.swing.JPanel;

public class taiji extends JPanel{

    public taiji(){
        super();
    }

    @Override
    protected void paintComponent(Graphics g){

        Graphics2D g2=(Graphics2D) g;

        g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
        //左右两个圆
        Shape lefthalfCircle=new Ellipse2D.Double(10, 10, 300, 300);
        Shape righthalfCircle=new Ellipse2D.Double(10, 10, 300, 300);
        //内部两个小圆
        Shape innerCircle1=new Ellipse2D.Double(85, 10, 150, 150);
        Shape innerCircle2=new Ellipse2D.Double(85,160 , 150, 150);
        //半边
        Shape rectangel1=new Rectangle2D.Double(160, 10, 150, 300);
        Shape rectangel2=new Rectangle2D.Double(10, 10, 150, 300);
        //area 用于shape的组合
        Area left=new Area(lefthalfCircle);
        Area right=new Area(righthalfCircle);

        Area area11=new Area(rectangel1);
        Area area22=new Area(rectangel2);

        left.subtract(area11);
        right.subtract(area22);

        Area inner1=new Area(innerCircle1);
        Area inner2=new Area(innerCircle2);

        left.add(inner1);
        right.add(inner2);
        //important 想想就好
        right.subtract(inner1);

        Shape minorWhiteCircle=new Ellipse2D.Double(150, 70, 20, 20);
        Shape innerBlackCircle=new Ellipse2D.Double(150, 230, 20, 20);

        g2.setPaint(Color.WHITE);
        g2.fill(left);
        g2.setPaint(Color.BLACK);
        g2.fill(right);

        g2.fill(minorWhiteCircle);
        g2.setPaint(Color.WHITE);
        g2.fill(innerBlackCircle);

    }

}
 类似资料:

相关阅读

相关文章

相关问答