fwpUtil
Class LineAndColorChooser




public class LineAndColorChooser
extends javax.swing.JDialog
implements java.awt.event.ActionListener
Title: Line style and color chooser dialog.

Description: This control allows the user to fully specify how a line is to be rendered/displayed. It integrates the fairly standard color chooser which allows specifying the color by using swatches, HSB or RGB tabs. The line style selections include line end styles of Butt, Round or Square. The line join styles include Bevel, Miter and Round. The user can also select whether the line is to be rendered using high quality or high speed attributes. The user can select between twenty line dash patterns and specify the line width and transparency. As each attribute is changed an example line is updated to display how all of the currently selected attributes affect the appearance of the line.

The control also provides for updating a Graphics2D object with new color, rendering hints, and stroke parameters with only a single method call.

Copyright: Copyright (c) 2011

Version:
1.0 - 2011
Author:
Fred Pospeschil - This file is placed in the public domain and can be used and adapted without restrictions. The user of the code is totally responsible for insuring its suitability in the intended application.
 

NOTE: This JavaDoc file was post processed with Microsoft FrontPage and regenerating the file will cause the graphics and format changes to be lost.

Constructor Detail

LineAndColorChooser

public LineAndColorChooser(java.awt.Frame parent)
Line style and color chooser dialog.
Parameters:
parent - The frame or subclass of frame from which this object is being created. This dialog will be centered on the parent. If a null is passed as the parent the dialog will be positioned 20 pixels down and to the right of the upper left corner of the display.

The dialog title will be "Line and Color Chooser" and the dialog will be modal.


Method Detail

getNewColor

public java.awt.Color getNewColor()
Returns the color and transparency value that were selected by the user.
Returns:
A Color object with red, green, blue and alpha set. The alpha/transparency value is constrained to fall beween (inclusive) 1 and 255. If an invalid value is entered the program advises the user and sets the value to 255. The user then has the opportunity to enter another legal value.

getNewStroke

public java.awt.BasicStroke getNewStroke()
Returns the stroke that the user developed.
Returns:
A Stroke object. The stroke parameters set by the user include the line width, end cap style, line join style and dash pattern. The miter limit is set to 10 and the dash phase is set to 0.

The GUI provides for selecting from twenty different dash patterns.

If the user enters a negative line width value the program issues a warning and resets the value to 1. The actual line width returned is the value entered by the user divided by 10. This was thought to make it easier for the user to specify very thin lines with out having to work with entering decimal numbers. Experimentation found that a line width of 1 (0.1) was the finest line which had any real visability on the monitor or printers - using 300 through 1200 DPI settings.


updateG2D

public void updateG2D(java.awt.Graphics2D g2D)
Update the graphics 2D object with new rendering hints, RGB color with transparency and stroke. The stroke will contain new line width, end caps, line join and dash pattern. The miter limit is set to 10 and the dash phase is set to 0.
Parameters:
g2D - The graphics object which should be updated.

toString

public java.lang.String toString()
Returns string values of the g2D, rendering hints, stroke, and color alpha.

Example:

g2D=sun.java2d.SunGraphics2D[font=javax.swing.plaf.FontUIResource [family=Tahoma,name=Tahoma,style=plain,size=13],color=java.awt.Color [r=51,g=0,b=255]] Rendering Hints={Alpha blending interpolation method key=Fastest alpha blending methods, Image interpolation method key=Nearest Neighbor image interpolation mode, Global antialiasing enable key=Nonantialiased rendering mode, Fractional metrics enable key=Integer text metrics mode, Dithering quality key=Nondithered rendering mode, Color rendering quality key=Fastest rendering methods, Global rendering quality key=Fastest rendering methods, Text-specific antialiasing enable key=Nonantialiased text mode} Stroke=java.awt.BasicStroke@783db174 Alpha=255

Parameters:
g2D - The graphics object which should be updated.