java.awt

Class BasicStroke

Implemented Interfaces:
Stroke

public class BasicStroke
extends Object
implements Stroke

A general purpose Stroke implementation that can represent a wide variety of line styles for use with subclasses of Graphics2D.

The line cap and join styles can be set using the options illustrated here:

Illustration of line cap and join styles

A dash array can be used to specify lines with alternating opaque and transparent sections.

Field Summary

static int
CAP_BUTT
Indicates a flat line cap style.
static int
CAP_ROUND
Indicates a rounded line cap style.
static int
CAP_SQUARE
Indicates a square line cap style.
static int
JOIN_BEVEL
Indicates a bevelled line join style.
static int
JOIN_MITER
Indicates a mitered line join style.
static int
JOIN_ROUND
Indicates a rounded line join style.

Constructor Summary

BasicStroke()
Creates a new BasicStroke instance.
BasicStroke(float width)
Creates a new BasicStroke instance with the given line width.
BasicStroke(float width, int cap, int join)
Creates a new BasicStroke instance with the given attributes.
BasicStroke(float width, int cap, int join, float miterlimit)
Creates a new BasicStroke instance with the given attributes.
BasicStroke(float width, int cap, int join, float miterlimit, float[] dash, float dashPhase)
Creates a new BasicStroke instance with the given attributes.

Method Summary

Shape
createStrokedShape(Shape s)
Creates a shape representing the stroked outline of the given shape.
boolean
equals(Object o)
Compares this BasicStroke for equality with an arbitrary object.
float[]
getDashArray()
Returns the dash array, which defines the length of alternate opaque and transparent sections in lines drawn with this stroke.
float
getDashPhase()
Returns the dash phase for the stroke.
int
getEndCap()
Returns a code indicating the line cap style (one of CAP_BUTT, CAP_ROUND, CAP_SQUARE).
int
getLineJoin()
Returns a code indicating the line join style (one of JOIN_BEVEL, JOIN_MITER or JOIN_ROUND).
float
getLineWidth()
Returns the line width.
float
getMiterLimit()
Returns the miter limit.
int
hashCode()
Returns the hash code for this object.

Methods inherited from class java.lang.Object

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Details

CAP_BUTT

public static final int CAP_BUTT
Indicates a flat line cap style. See the class overview for an illustration.
Field Value:
0

CAP_ROUND

public static final int CAP_ROUND
Indicates a rounded line cap style. See the class overview for an illustration.
Field Value:
1

CAP_SQUARE

public static final int CAP_SQUARE
Indicates a square line cap style. See the class overview for an illustration.
Field Value:
2

JOIN_BEVEL

public static final int JOIN_BEVEL
Indicates a bevelled line join style. See the class overview for an illustration.
Field Value:
2

JOIN_MITER

public static final int JOIN_MITER
Indicates a mitered line join style. See the class overview for an illustration.
Field Value:
0

JOIN_ROUND

public static final int JOIN_ROUND
Indicates a rounded line join style. See the class overview for an illustration.
Field Value:
1

Constructor Details

BasicStroke

public BasicStroke()
Creates a new BasicStroke instance. The default values are:

BasicStroke

public BasicStroke(float width)
Creates a new BasicStroke instance with the given line width. The default values are:
Parameters:
width - the line width (>= 0.0f).
Throws:
IllegalArgumentException - If width is negative.

BasicStroke

public BasicStroke(float width,
                   int cap,
                   int join)
Creates a new BasicStroke instance with the given attributes. The miter limit defaults to 10.0.
Parameters:
width - the line width (>= 0.0f).
cap - the line cap style (one of CAP_BUTT, CAP_ROUND or CAP_SQUARE).
join - the line join style (one of JOIN_ROUND, JOIN_BEVEL, or JOIN_MITER).
Throws:
IllegalArgumentException - If one input parameter doesn't meet its needs.

BasicStroke

public BasicStroke(float width,
                   int cap,
                   int join,
                   float miterlimit)
Creates a new BasicStroke instance with the given attributes.
Parameters:
width - the line width (>= 0.0f).
cap - the line cap style (one of CAP_BUTT, CAP_ROUND or CAP_SQUARE).
join - the line join style (one of JOIN_ROUND, JOIN_BEVEL, or JOIN_MITER).
miterlimit - the limit to trim the miter join. The miterlimit must be greater than or equal to 1.0f.
Throws:
IllegalArgumentException - If one input parameter doesn't meet its needs.

BasicStroke

public BasicStroke(float width,
                   int cap,
                   int join,
                   float miterlimit,
                   float[] dash,
                   float dashPhase)
Creates a new BasicStroke instance with the given attributes.
Parameters:
width - the line width (>= 0.0f).
cap - the line cap style (one of CAP_BUTT, CAP_ROUND or CAP_SQUARE).
join - the line join style (one of JOIN_ROUND, JOIN_BEVEL, or JOIN_MITER).
miterlimit - the limit to trim the miter join. The miterlimit must be greater than or equal to 1.0f.
dash - The array representing the dashing pattern. There must be at least one non-zero entry.
dashPhase - is negative and dash is not null.
Throws:
IllegalArgumentException - If one input parameter doesn't meet its needs.

Method Details

createStrokedShape

public Shape createStrokedShape(Shape s)
Creates a shape representing the stroked outline of the given shape. THIS METHOD IS NOT YET IMPLEMENTED.
Specified by:
createStrokedShape in interface Stroke
Parameters:
s - the shape.

equals

public boolean equals(Object o)
Compares this BasicStroke for equality with an arbitrary object. This method returns true if and only if:
  • o is an instanceof BasicStroke;
  • this object has the same width, line cap style, line join style, miter limit, dash array and dash phase as o.
Overrides:
equals in interface Object
Parameters:
o - the object (null permitted).
Returns:
true if this stroke is equal to o and false otherwise.

getDashArray

public float[] getDashArray()
Returns the dash array, which defines the length of alternate opaque and transparent sections in lines drawn with this stroke. If null, a continuous line will be drawn.
Returns:
The dash array (possibly null).

getDashPhase

public float getDashPhase()
Returns the dash phase for the stroke. This is the offset from the start of a path at which the pattern defined by getDashArray() is rendered.
Returns:
The dash phase.

getEndCap

public int getEndCap()
Returns a code indicating the line cap style (one of CAP_BUTT, CAP_ROUND, CAP_SQUARE).
Returns:
A code indicating the line cap style.

getLineJoin

public int getLineJoin()
Returns a code indicating the line join style (one of JOIN_BEVEL, JOIN_MITER or JOIN_ROUND).
Returns:
A code indicating the line join style.

getLineWidth

public float getLineWidth()
Returns the line width.
Returns:
The line width.

getMiterLimit

public float getMiterLimit()
Returns the miter limit.
Returns:
The miter limit.

hashCode

public int hashCode()
Returns the hash code for this object. The hash is calculated by xoring the hash, cap, join, limit, dash array and phase values (converted to int first with Float.floatToIntBits() if the value is a float).
Overrides:
hashCode in interface Object
Returns:
The hash code.

BasicStroke.java -- Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.