Package jmri.util.swing
Class ResizableImagePanel
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- jmri.util.swing.ResizableImagePanel
-
- All Implemented Interfaces:
java.awt.event.ComponentListener,java.awt.image.ImageObserver,java.awt.MenuContainer,java.io.Serializable,java.util.EventListener,javax.accessibility.Accessible
- Direct Known Subclasses:
BackgroundPanel,EditableResizableImagePanel
public class ResizableImagePanel extends javax.swing.JPanel implements java.awt.event.ComponentListener
A class extending JPanels to have a image display in a panel, supports- drag'n drop of image file
- can resize container
- can scale content to size
- respect aspect ratio by default (when resizing content)
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
-
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
-
-
Field Summary
Fields Modifier and Type Field Description protected javax.swing.JLabelbgImgstatic java.lang.StringIMAGE_PATH(package private) static java.awt.DimensionSMALL_DIM(package private) booleantoResize-
Fields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
-
-
Constructor Summary
Constructors Constructor Description ResizableImagePanel()Default constructor.ResizableImagePanel(java.lang.String imagePath)Constructor with initial image file path as parameter.ResizableImagePanel(java.lang.String imagePath, int w, int h)Constructor for ResizableImagePanel with forced initial size
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcomponentHidden(java.awt.event.ComponentEvent e)voidcomponentMoved(java.awt.event.ComponentEvent e)voidcomponentResized(java.awt.event.ComponentEvent e)voidcomponentShown(java.awt.event.ComponentEvent e)java.lang.StringgetImagePath()Return current image file pathjava.awt.image.BufferedImagegetScaledImage()Get current scaled ImagebooleanisResizingContainer()Can this DnDImagePanel resize its container?booleanisRespectingAspectRatio()Is this DnDImagePanel respecting aspect ratio when resizing content?voidpaintComponent(java.awt.Graphics g)voidsetBackground(java.awt.Color bckCol)voidsetImagePath(java.lang.String s)Set image file path, display will be updated if passed value is null, blank imagevoidsetResizingContainer(boolean b)Allows this ResizableImagePanel to force resize of its containervoidsetRespectAspectRatio(boolean b)Allow this ResizableImagePanel to respect aspect ratio when resizing content.-
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
-
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, 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, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, 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, 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
-
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, 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, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, 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, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
Field Detail
-
IMAGE_PATH
public static final java.lang.String IMAGE_PATH
- See Also:
- Constant Field Values
-
bgImg
protected javax.swing.JLabel bgImg
-
toResize
boolean toResize
-
SMALL_DIM
static final java.awt.Dimension SMALL_DIM
-
-
Constructor Detail
-
ResizableImagePanel
public ResizableImagePanel()
Default constructor.
-
ResizableImagePanel
public ResizableImagePanel(java.lang.String imagePath)
Constructor with initial image file path as parameter. Component will be (preferred) sized to image sized- Parameters:
imagePath- Path to image to display
-
ResizableImagePanel
public ResizableImagePanel(java.lang.String imagePath, int w, int h)
Constructor for ResizableImagePanel with forced initial size- Parameters:
imagePath- Path to image to displayw- Panel widthh- Panel height
-
-
Method Detail
-
setBackground
public void setBackground(java.awt.Color bckCol)
- Overrides:
setBackgroundin classjavax.swing.JComponent
-
setResizingContainer
public void setResizingContainer(boolean b)
Allows this ResizableImagePanel to force resize of its container- Parameters:
b- true if this instance can resize its container; false otherwise
-
isResizingContainer
public boolean isResizingContainer()
Can this DnDImagePanel resize its container?- Returns:
- true if container can be resized
-
isRespectingAspectRatio
public boolean isRespectingAspectRatio()
Is this DnDImagePanel respecting aspect ratio when resizing content?- Returns:
- true is aspect ratio is maintained
-
setRespectAspectRatio
public void setRespectAspectRatio(boolean b)
Allow this ResizableImagePanel to respect aspect ratio when resizing content.- Parameters:
b- true if aspect ratio should be respected; false otherwise
-
getImagePath
public java.lang.String getImagePath()
Return current image file path- Returns:
- The image path or "/" if no image is specified
-
setImagePath
public void setImagePath(java.lang.String s)
Set image file path, display will be updated if passed value is null, blank image- Parameters:
s- path to image file
-
componentResized
public void componentResized(java.awt.event.ComponentEvent e)
- Specified by:
componentResizedin interfacejava.awt.event.ComponentListener
-
componentMoved
public void componentMoved(java.awt.event.ComponentEvent e)
- Specified by:
componentMovedin interfacejava.awt.event.ComponentListener
-
componentShown
public void componentShown(java.awt.event.ComponentEvent e)
- Specified by:
componentShownin interfacejava.awt.event.ComponentListener
-
componentHidden
public void componentHidden(java.awt.event.ComponentEvent e)
- Specified by:
componentHiddenin interfacejava.awt.event.ComponentListener
-
paintComponent
public void paintComponent(java.awt.Graphics g)
- Overrides:
paintComponentin classjavax.swing.JComponent
-
getScaledImage
public java.awt.image.BufferedImage getScaledImage()
Get current scaled Image- Returns:
- the image resized as specified
-
-