/* * @(#)WindingRule.java 1.13 98/06/29 * * Copyright 1998 by Sun Microsystems, Inc., * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A. * All rights reserved. * * This software is the confidential and proprietary information * of Sun Microsystems, Inc. ("Confidential Information"). You * shall not disclose such Confidential Information and shall use * it only in accordance with the terms of the license agreement * you entered into with Sun. */ package demos.Paths; import java.awt.*; import java.awt.event.*; import java.awt.geom.AffineTransform; import java.awt.geom.GeneralPath; import J2DCanvas; /** * Rectangles filled to illustrate the GenerPath winding rule, determining * the interior of a path. */ public class WindingRule extends J2DCanvas { public WindingRule() { setBackground(Color.white); } public void drawDemo(Graphics2D g2) { g2.translate(w/3, h/6); GeneralPath p = new GeneralPath(GeneralPath.WIND_NON_ZERO); p.moveTo(0.0f, 0.0f); p.lineTo(w/4, 0.0f); p.lineTo(w/4, h/4); p.lineTo(0.0f, h/4); p.closePath(); p.moveTo(w/16, h/18); p.lineTo(w/4+w/16, h/18); p.lineTo(w/4+w/16, h/4+h/18); p.lineTo(w/16, h/4+h/18); p.closePath(); g2.setColor(Color.lightGray); g2.fill(p); g2.setColor(Color.black); g2.draw(p); g2.drawString("NON_ZERO rule", 0, -5); g2.translate(0.0f, h/2); p.setWindingRule(GeneralPath.WIND_EVEN_ODD); g2.setColor(Color.lightGray); g2.fill(p); g2.setColor(Color.black); g2.draw(p); g2.drawString("EVEN_ODD rule", 0, -5); g2.setTransform(new AffineTransform()); } public static void main(String s[]) { WindowListener l = new WindowAdapter() { public void windowClosing(WindowEvent e) {System.exit(0);} }; Frame f = new Frame("Java2D Demo - WindingRule"); f.addWindowListener(l); f.add("Center", new WindingRule()); f.pack(); f.setSize(new Dimension(400,300)); f.show(); } }