diff options
Diffstat (limited to 'java/awt/Graphics2D.java')
-rw-r--r-- | java/awt/Graphics2D.java | 220 |
1 files changed, 211 insertions, 9 deletions
diff --git a/java/awt/Graphics2D.java b/java/awt/Graphics2D.java index de71993ae..53d7ca5e6 100644 --- a/java/awt/Graphics2D.java +++ b/java/awt/Graphics2D.java @@ -1,4 +1,4 @@ -/* Copyright (C) 2000, 2002, 2004 Free Software Foundation +/* Copyright (C) 2000, 2002, 2004, 2006, Free Software Foundation This file is part of GNU Classpath. @@ -45,10 +45,35 @@ import java.awt.image.BufferedImageOp; import java.awt.image.ImageObserver; import java.awt.image.RenderedImage; import java.awt.image.renderable.RenderableImage; +import java.awt.print.PageFormat; +import java.awt.print.Printable; import java.text.AttributedCharacterIterator; import java.util.Map; /** + * An abstract class defining a device independent two-dimensional vector + * graphics API. Concrete subclasses implement this API for output of + * vector graphics to: (*) + * <p> + * <ul> + * <li>a {@link javax.swing.JComponent} - in the + * {@link javax.swing.JComponent#paint(Graphics)} method, the incoming + * {@link Graphics} should always be an instance of + * <code>Graphics2D</code> (*);</li> + * <li>a {@link BufferedImage} - see + * {@link BufferedImage#createGraphics()} (*);</li> + * <li>a {@link PrinterJob} - in the + * {@link Printable#print(Graphics, PageFormat, int)} method, the incoming + * {@link Graphics} should always be an instance of <code>Graphics2D</code> + * (*).</li> + * </ul> + * <p> + * (*) Support for this API is not fully implemented in GNU Classpath yet. + * <p> + * Third party libraries provide support for output to other formats via this + * API, including encapsulated postscript (EPS), portable document format (PDF), + * and scalable vector graphics (SVG). + * * @author Rolf W. Rasmussen (rolfwr@ii.uib.no) */ public abstract class Graphics2D extends Graphics @@ -70,6 +95,14 @@ public abstract class Graphics2D extends Graphics super.fill3DRect(x, y, width, height, raised); } + /** + * Draws an outline around a shape using the current stroke and paint. + * + * @param shape the shape (<code>null</code> not permitted). + * + * @see #getStroke() + * @see #getPaint() + */ public abstract void draw(Shape shape); public abstract boolean drawImage(Image image, AffineTransform xform, @@ -86,18 +119,57 @@ public abstract class Graphics2D extends Graphics public abstract void drawRenderableImage(RenderableImage image, AffineTransform xform); + /** + * Draws a string at the specified location, using the current font. + * + * @param text the string to draw. + * @param x the x-coordinate. + * @param y the y-coordinate. + * + * @see Graphics#setFont(Font) + */ public abstract void drawString(String text, int x, int y); + /** + * Draws a string at the specified location, using the current font. + * + * @param text the string to draw. + * @param x the x-coordinate. + * @param y the y-coordinate. + * + * @see Graphics#setFont(Font) + */ public abstract void drawString(String text, float x, float y); + /** + * Draws an attributed string at the specified location. + * + * @param iterator the source of the attributed text. + * @param x the x-coordinate. + * @param y the y-coordinate. + */ public abstract void drawString(AttributedCharacterIterator iterator, int x, int y); + /** + * Draws an attributed string at the specified location. + * + * @param iterator the source of the attributed text. + * @param x the x-coordinate. + * @param y the y-coordinate. + */ public abstract void drawString(AttributedCharacterIterator iterator, float x, float y); - // public abstract void drawGlyphVector(GlyphVector g, float x, float y); - + /** + * Fills the interior of the specified <code>shape</code> using the current + * paint. + * + * @param shape the shape to fill (<code>null</code> not permitted). + * + * @see #draw(Shape) + * @see #getPaint() + */ public abstract void fill(Shape shape); public abstract boolean hit(Rectangle rect, Shape text, @@ -105,21 +177,72 @@ public abstract class Graphics2D extends Graphics public abstract GraphicsConfiguration getDeviceConfiguration(); + /** + * Sets the current compositing rule. + * + * @param comp the composite. + * + * @see #getComposite() + */ public abstract void setComposite(Composite comp); + /** + * Sets the paint to be used for subsequent drawing operations. + * + * @param paint the paint (<code>null</code> not permitted). + * + * @see #getPaint() + */ public abstract void setPaint(Paint paint); + /** + * Sets the stroke to be used for subsequent drawing operations. + * + * @param stroke the stroke (<code>null</code> not permitted). + * + * @see #getStroke() + */ public abstract void setStroke(Stroke stroke); + /** + * Adds or updates a hint in the current rendering hints table. + * + * @param hintKey the hint key. + * @param hintValue the hint value. + */ public abstract void setRenderingHint(RenderingHints.Key hintKey, Object hintValue); + /** + * Returns the current value of a rendering hint. + * + * @param hintKey the key for the hint. + * + * @return The value for the specified hint. + */ public abstract Object getRenderingHint(RenderingHints.Key hintKey); + /** + * Replaces the current rendering hints with the supplied hints. + * + * @param hints the hints. + * + * @see #addRenderingHints(Map) + */ public abstract void setRenderingHints(Map<?,?> hints); + /** + * Adds/updates the rendering hint. + * + * @param hints the hints to add or update. + */ public abstract void addRenderingHints(Map<?,?> hints); + /** + * Returns the current rendering hints. + * + * @return The current rendering hints. + */ public abstract RenderingHints getRenderingHints(); public abstract void translate(int x, int y); @@ -134,25 +257,104 @@ public abstract class Graphics2D extends Graphics public abstract void shear(double shearX, double shearY); - public abstract void transform(AffineTransform Tx); + /** + * Sets the current transform to a concatenation of <code>transform</code> + * and the existing transform. + * + * @param transform the transform. + */ + public abstract void transform(AffineTransform transform); - public abstract void setTransform(AffineTransform Tx); - + /** + * Sets the current transform. If the caller specifies a <code>null</code> + * transform, this method should set the current transform to the + * identity transform. + * + * @param transform the transform (<code>null</code> permitted). + * + * @see #getTransform() + */ + public abstract void setTransform(AffineTransform transform); + + /** + * Returns the current transform. + * + * @return The current transform. + * + * @see #setTransform(AffineTransform) + */ public abstract AffineTransform getTransform(); + /** + * Returns the current paint. + * + * @return The current paint. + * + * @see #setPaint(Paint) + */ public abstract Paint getPaint(); + /** + * Returns the current compositing rule. + * + * @return The current compositing rule. + * + * @see #setComposite(Composite) + */ public abstract Composite getComposite(); + /** + * Sets the background color (used by the + * {@link Graphics#clearRect(int, int, int, int)} method). + * + * @param color the color. + * + * @see #getBackground() + */ public abstract void setBackground(Color color); + /** + * Returns the color used by the + * {@link Graphics#clearRect(int, int, int, int)} method. + * + * @return The background color. + * + * @see #setBackground(Color) + */ public abstract Color getBackground(); + /** + * Returns the current stroke. + * + * @return The current stroke. + * + * @see #setStroke(Stroke) + */ public abstract Stroke getStroke(); + /** + * Sets the clip region to the intersection of the current clipping region + * and <code>s</code>. + * + * @param s the shape to intersect with the current clipping region. + * + * @see Graphics#setClip(Shape) + */ public abstract void clip(Shape s); - public abstract FontRenderContext getFontRenderContext (); - - public abstract void drawGlyphVector (GlyphVector g, float x, float y); + /** + * Returns the font render context. + * + * @return The font render context. + */ + public abstract FontRenderContext getFontRenderContext(); + + /** + * Draws a glyph vector at the specified location. + * + * @param g the glyph vector. + * @param x the x-coordinate. + * @param y the y-coordinate. + */ + public abstract void drawGlyphVector(GlyphVector g, float x, float y); } |