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.JLabel
bgImg
static java.lang.String
IMAGE_PATH
(package private) static java.awt.Dimension
SMALL_DIM
(package private) boolean
toResize
-
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 void
componentHidden(java.awt.event.ComponentEvent e)
void
componentMoved(java.awt.event.ComponentEvent e)
void
componentResized(java.awt.event.ComponentEvent e)
void
componentShown(java.awt.event.ComponentEvent e)
java.lang.String
getImagePath()
Return current image file pathjava.awt.image.BufferedImage
getScaledImage()
Get current scaled Imageboolean
isResizingContainer()
Can this DnDImagePanel resize its container?boolean
isRespectingAspectRatio()
Is this DnDImagePanel respecting aspect ratio when resizing content?void
paintComponent(java.awt.Graphics g)
void
setBackground(java.awt.Color bckCol)
void
setImagePath(java.lang.String s)
Set image file path, display will be updated if passed value is null, blank imagevoid
setResizingContainer(boolean b)
Allows this ResizableImagePanel to force resize of its containervoid
setRespectAspectRatio(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:
setBackground
in 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:
componentResized
in interfacejava.awt.event.ComponentListener
-
componentMoved
public void componentMoved(java.awt.event.ComponentEvent e)
- Specified by:
componentMoved
in interfacejava.awt.event.ComponentListener
-
componentShown
public void componentShown(java.awt.event.ComponentEvent e)
- Specified by:
componentShown
in interfacejava.awt.event.ComponentListener
-
componentHidden
public void componentHidden(java.awt.event.ComponentEvent e)
- Specified by:
componentHidden
in interfacejava.awt.event.ComponentListener
-
paintComponent
public void paintComponent(java.awt.Graphics g)
- Overrides:
paintComponent
in classjavax.swing.JComponent
-
getScaledImage
public java.awt.image.BufferedImage getScaledImage()
Get current scaled Image- Returns:
- the image resized as specified
-
-