java.lang.Object
java.awt.Component
java.awt.Container
java.awt.Window
java.awt.Frame
javax.swing.JFrame
org.jorigin.swing.JImageFrame
- All Implemented Interfaces:
ImageObserver,MenuContainer,Serializable,Accessible,RootPaneContainer,WindowConstants
A
swing component that enables to display images by embedding a JImagePanel.
This frame provides various operations on the view (zoom, moving, ...) and helper methods for correspondence between image space and display space.
This underlying image panel also manages features that enable to display interactive overlays on the panel.
- Since:
- 1.0.0
- Version:
- "1.0.14" - b202111241200L
- Author:
- Julien SEINTURIER - Université de Toulon / CNRS LIS umr 7020 - github.com/jorigin/jcommon (contact@jorigin.org)
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class javax.swing.JFrame
JFrame.AccessibleJFrameNested classes/interfaces inherited from class java.awt.Frame
Frame.AccessibleAWTFrameNested classes/interfaces inherited from class java.awt.Window
Window.AccessibleAWTWindow, Window.TypeNested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainerNested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy -
Field Summary
Fields inherited from class javax.swing.JFrame
accessibleContext, rootPane, rootPaneCheckingEnabledFields inherited from class java.awt.Frame
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSORFields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTFields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTHFields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE -
Constructor Summary
ConstructorsConstructorDescriptionCreate a new frame dedicated to image display.JImageFrame(BufferedImage image) Create a new frame that displays the givenimage.JImageFrame(String title, Dimension size, BufferedImage image) Create a new frame that displays the givenimage. -
Method Summary
Modifier and TypeMethodDescriptionvoidfit()Fit the actual view to display the whole image.getImage()Get theimagethat is displayed within the frame.getImageFeatures(String layer) Get theimage featuresthat are attached to the underlyingimage panel.protected voidinitGUI()Initialization of the Graphical User Interface components.booleanGet if the underlying image panel fits the view when its resized.booleanisLayerDisplayed(String layer) Get if thelayeris actually displaying within the underlyingimage panel.protected voidRefresh of the Graphical User Interface components.voidsetAutoFit(boolean autoFit) Set if the underlying image panel has to fit the view when its resized.voidsetImage(BufferedImage image) Set theimageto display within the frame.voidsetImageFeatures(String layer, List<JImageFeature> features) Set theimage featuresto attach to the underlyingimage panel.voidsetLayerDisplayed(String layer, boolean displayed) Set if thelayerhas to be displayed within the underlyingimage panel.static voidshowImageFrame(String title, Dimension size, Point location, BufferedImage image, boolean autoFit) Create and display an image frame.Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, updateMethods inherited from class java.awt.Frame
addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setBackground, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setOpacity, setResizable, setShape, setState, setTitle, setUndecoratedMethods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBackground, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOpacity, getOwnedWindows, getOwner, getOwnerlessWindows, getShape, getToolkit, getType, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, setVisible, show, toBack, toFrontMethods 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, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusDownCycle, validate, validateTreeMethods 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, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, 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, 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, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setMixingCutoutShape, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycleMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface java.awt.MenuContainer
getFont, postEvent
-
Constructor Details
-
JImageFrame
public JImageFrame()Create a new frame dedicated to image display. -
JImageFrame
Create a new frame that displays the givenimage.- Parameters:
image- the image to display.
-
JImageFrame
Create a new frame that displays the givenimage.- Parameters:
title- the title of the frame.size- the size of the frame in pixels.image- the image to display.
-
-
Method Details
-
showImageFrame
public static void showImageFrame(String title, Dimension size, Point location, BufferedImage image, boolean autoFit) Create and display an image frame.- Parameters:
title- the title of the frame.size- the size (width × height) of the frame in pixels.location- the location (x, y) of the frame on the display.image- the image to display.autoFit-trueif the frame has to fit the view when resized andfalseotherwise.
-
initGUI
protected void initGUI()Initialization of the Graphical User Interface components. -
refreshGUI
protected void refreshGUI()Refresh of the Graphical User Interface components. -
getImage
Get theimagethat is displayed within the frame.- Returns:
- the image that is displayed within the frame.
- See Also:
-
setImage
Set theimageto display within the frame.- Parameters:
image- the image to display within the frame.- See Also:
-
getImageFeatures
Get theimage featuresthat are attached to the underlyingimage panel. If the layer does not exist, it is created. In this case, the layer will not be displayed until a call tosetLayerDisplayed(layer, true). If the layer exists, all previous existing features are deleted.- Parameters:
layer- the layer that holds the features.- Returns:
- the
image featuresthat are attached to the underlying image panel. - See Also:
-
setImageFeatures
Set theimage featuresto attach to the underlyingimage panel.- Parameters:
layer- the layer that holds the features.features- theimage featuresto attach to the underlyingimage panel.- See Also:
-
isLayerDisplayed
Get if thelayeris actually displaying within the underlyingimage panel.- Parameters:
layer- the layer to check.- Returns:
trueif thelayeris actually displaying andfalseotherwise.- See Also:
-
setLayerDisplayed
Set if thelayerhas to be displayed within the underlyingimage panel.- Parameters:
layer- the layer to set.displayed-trueif thelayerhas to be displayed andfalseotherwise.- See Also:
-
isAutoFit
public boolean isAutoFit()Get if the underlying image panel fits the view when its resized.- Returns:
trueif the panel fits the view when its resized andfalseotherwise.- See Also:
-
setAutoFit
public void setAutoFit(boolean autoFit) Set if the underlying image panel has to fit the view when its resized.- Parameters:
autoFit-trueif the panel fits the view when its resized andfalseotherwise.- See Also:
-
fit
public void fit()Fit the actual view to display the whole image.
-