jview
Class JScaleableImage

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by jview.JImageComponent
                  extended by jview.JScaleableImage
All Implemented Interfaces:
ImageObserver, MenuContainer, Printable, Serializable

public class JScaleableImage
extends JImageComponent
implements Printable

A class that places an image that is completely loaded into a JComponent. The size of the component is retrieved from the image delivered to it.

See Also:
Serialized Form

Nested Class Summary
static class JScaleableImage.Display
          Test the functionality.
 
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
private  AffineTransform imposed
          Externally set size/flips of the image.
private  AffineTransform nonscale
          Externally flips of the image.
private  Image orgimage
          The original image, before the first call to setSize(java.awt.Dimension).
private  boolean scale
          Scale the image if not displayed in original size.
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.print.Printable
NO_SUCH_PAGE, PAGE_EXISTS
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
JScaleableImage()
          Calls the superconstructor with no arguments.
JScaleableImage(boolean resize)
          Calls the superconstructor with no arguments.
JScaleableImage(Image loaded)
          Calls the superconstructor with no arguments and sets the fits image to display.
JScaleableImage(Image loaded, boolean resize)
          Calls the superconstructor with no arguments and sets the fits image to display.
 
Method Summary
 void flipHorizontally()
          Flips the image horizontally.
 void flipVertically()
          Flips the image vertically.
 AffineTransform getImposed()
          Returns the transform originally used to scale the buffered image.
 AffineTransform getNonScaled()
          Returns all non-scaling transforms applied to the image.
 Image getOriginalImage()
          Returns the original image before scaling rotation or flipping.
 Dimension getOriginalSize()
          Returns the original size of the image.
 double getZoom()
          Returns somthing like a common zoom factor.
 void paintComponent(Graphics graph)
          Draws the image by directly interfering with the paint method.
 int print(Graphics into, PageFormat margin, int pagenum)
          Implemtens printing facilities.
 void setImage(Image loaded)
          Sets the fits image to display.
 void setSize(Dimension rescale)
          Sets the size of the image to be displayed.
 void setZoom(double zoom)
          Sets a zoom factor.
 
Methods inherited from class jview.JImageComponent
createBufferedImage, getImage, getPreferredSize
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update, updateUI
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, 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, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

scale

private boolean scale
Scale the image if not displayed in original size.


imposed

private AffineTransform imposed
Externally set size/flips of the image.


nonscale

private AffineTransform nonscale
Externally flips of the image.


orgimage

private Image orgimage
The original image, before the first call to setSize(java.awt.Dimension).

Constructor Detail

JScaleableImage

public JScaleableImage()
Calls the superconstructor with no arguments.


JScaleableImage

public JScaleableImage(Image loaded)
Calls the superconstructor with no arguments and sets the fits image to display.


JScaleableImage

public JScaleableImage(boolean resize)
Calls the superconstructor with no arguments.


JScaleableImage

public JScaleableImage(Image loaded,
                       boolean resize)
Calls the superconstructor with no arguments and sets the fits image to display.

Method Detail

setImage

public void setImage(Image loaded)
Sets the fits image to display. If no original image was set, we record this image.

Overrides:
setImage in class JImageComponent

getOriginalSize

public Dimension getOriginalSize()
Returns the original size of the image.


getOriginalImage

public Image getOriginalImage()
Returns the original image before scaling rotation or flipping.


setZoom

public void setZoom(double zoom)
Sets a zoom factor. This method delegates to setSize(java.awt.Dimension) after a new size of the image has been calculated.


getZoom

public double getZoom()
Returns somthing like a common zoom factor. This method queries the current image size and compares it to the original size. The zoom returned is the average of the scaling in x and y direction.


setSize

public void setSize(Dimension rescale)
Sets the size of the image to be displayed. Implementation note: We directly set the image, pixel values won't have changed.

Overrides:
setSize in class Component

flipVertically

public void flipVertically()
Flips the image vertically. Only works on buffered images. We do not change the image size. Implementation note: We directly set the image, pixel values won't have changed.


flipHorizontally

public void flipHorizontally()
Flips the image horizontally. Only works on buffered images. We do not change the image size. Implementation note: We directly set the image, pixel values won't have changed.


getImposed

public AffineTransform getImposed()
Returns the transform originally used to scale the buffered image. May be null.


getNonScaled

public AffineTransform getNonScaled()
Returns all non-scaling transforms applied to the image. Note that this may only return the non-scaling transforms applied to the image before size setting.


paintComponent

public void paintComponent(Graphics graph)
Draws the image by directly interfering with the paint method. Note that the Graphics object handed over is always a Graphics2D instance.

Overrides:
paintComponent in class JImageComponent

print

public int print(Graphics into,
                 PageFormat margin,
                 int pagenum)
Implemtens printing facilities.

Specified by:
print in interface Printable