taiji
来源:互联网 发布:小狐仙打印软件 编辑:程序博客网 时间:2024/06/13 06:53
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); }}
0 0