fwpUtil
Class LineAndColorChooser

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Window
              extended by java.awt.Dialog
                  extended by javax.swing.JDialog
                      extended by fwpUtil.LineAndColorChooser
All Implemented Interfaces:
java.awt.event.ActionListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants

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

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JDialog
javax.swing.JDialog.AccessibleJDialog
 
Nested classes/interfaces inherited from class java.awt.Dialog
java.awt.Dialog.AccessibleAWTDialog
 
Nested classes/interfaces inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
 
Fields inherited from class javax.swing.JDialog
accessibleContext, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
LineAndColorChooser(java.awt.Frame parent)
          Line style and color chooser dialog.
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent ae)
           
 java.awt.Color getNewColor()
          Returns the color and transparency value that were selected by the user.
 java.awt.BasicStroke getNewStroke()
          Returns the stroke that the user developed.
 java.lang.String toString()
          Returns string values of the g2D, rendering hints, stroke, and color alpha.
 void updateG2D(java.awt.Graphics2D g2D)
          Update the graphics 2D object with new rendering hints, RGB color with transparency and stroke.
 
Methods inherited from class javax.swing.JDialog
addImpl, createRootPane, dialogInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getJMenuBar, getLayeredPane, getRootPane, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, update
 
Methods inherited from class java.awt.Dialog
addNotify, getTitle, hide, isModal, isResizable, isUndecorated, setModal, setResizable, setTitle, setUndecorated, show
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, finalize, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getInputContext, getListeners, getLocale, getMostRecentFocusOwner, getOwnedWindows, getOwner, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindowStateListeners, isActive, isAlwaysOnTop, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, setAlwaysOnTop, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setLocationByPlatform, setLocationRelativeTo, toBack, toFront
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, removeNotify, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, setSize, setSize, setVisible, show, size, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

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

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent ae)
Specified by:
actionPerformed in interface java.awt.event.ActionListener

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.


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

Overrides:
toString in class java.awt.Component
Parameters:
g2D - The graphics object which should be updated.

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.