jdk/src/share/classes/sun/print/PathGraphics.java
changeset 25556 1246bc23416f
parent 24865 09b1d992ca72
equal deleted inserted replaced
25555:b70a66b5b942 25556:1246bc23416f
    41 import java.awt.Image;
    41 import java.awt.Image;
    42 import java.awt.Paint;
    42 import java.awt.Paint;
    43 import java.awt.Polygon;
    43 import java.awt.Polygon;
    44 import java.awt.Shape;
    44 import java.awt.Shape;
    45 
    45 
       
    46 import java.awt.geom.Path2D;
    46 import java.text.AttributedCharacterIterator;
    47 import java.text.AttributedCharacterIterator;
    47 
    48 
    48 import java.awt.font.FontRenderContext;
    49 import java.awt.font.FontRenderContext;
    49 import java.awt.font.GlyphVector;
    50 import java.awt.font.GlyphVector;
    50 import java.awt.font.TextAttribute;
    51 import java.awt.font.TextAttribute;
   455      * @see         java.awt.Graphics#drawPolygon(int[], int[], int)
   456      * @see         java.awt.Graphics#drawPolygon(int[], int[], int)
   456      * @since       1.1
   457      * @since       1.1
   457      */
   458      */
   458     public void drawPolyline(int xPoints[], int yPoints[],
   459     public void drawPolyline(int xPoints[], int yPoints[],
   459                              int nPoints) {
   460                              int nPoints) {
   460         float fromX;
   461 
   461         float fromY;
   462         if (nPoints == 2) {
   462         float toX;
   463             draw(new Line2D.Float(xPoints[0], yPoints[0],
   463         float toY;
   464                                   xPoints[1], yPoints[1]));
   464 
   465         } else if (nPoints > 2) {
   465         if (nPoints > 0) {
   466             Path2D path = new Path2D.Float(Path2D.WIND_EVEN_ODD, nPoints);
   466             fromX = xPoints[0];
   467             path.moveTo(xPoints[0], yPoints[0]);
   467             fromY = yPoints[0];
       
   468             for(int i = 1; i < nPoints; i++) {
   468             for(int i = 1; i < nPoints; i++) {
   469                 toX = xPoints[i];
   469                 path.lineTo(xPoints[i], yPoints[i]);
   470                 toY = yPoints[i];
       
   471                 draw(new Line2D.Float(fromX, fromY, toX, toY));
       
   472                 fromX = toX;
       
   473                 fromY = toY;
       
   474             }
   470             }
   475         }
   471             draw(path);
   476 
   472         }
   477     }
   473     }
   478 
   474 
   479 
   475 
   480     /**
   476     /**
   481      * Draws a closed polygon defined by
   477      * Draws a closed polygon defined by