public class MagnifierGlass
extends javax.swing.JComponent
JComponent is used instead of separate window for three reasons: 1. It is easy to sink events from JComponent to underlying UI elements 2. It is easy to snapshot Swing UI, but magnifying screen parts will not work like that 3. Not all OS support window per-pixel translucency which will limit the usage of this feature
This component might be extended in future to support windowed mode, but for now it is limited to Swing window bounds.
javax.swing.JComponent.AccessibleJComponent| Modifier and Type | Field and Description |
|---|---|
protected java.awt.image.BufferedImage |
buffer |
static javax.swing.ImageIcon |
cursorIcon
Icons.
|
protected java.awt.Cursor |
defaultCursor |
protected boolean |
displayDummyCursor
Whether or not dummy cursor should be displayed on magnified image.
|
protected float |
dummyCursorOpacity
Dummy cursor opacity.
|
protected long |
forceUpdateFrequency
Milliseconds to forcefully update magnifier buffer.
|
protected com.alee.utils.swing.WebTimer |
forceUpdater |
protected int |
lastShadeWidth |
protected java.awt.event.AWTEventListener |
listener |
protected MagnifierPosition |
position
Magnifier position.
|
protected boolean |
rendered |
protected int |
round
Rectangular magnifier round.
|
protected javax.swing.Icon |
shadeIcon |
protected int |
shadeWidth
Magnifier shade width.
|
protected java.awt.Dimension |
size
Zoom area size.
|
protected MagnifierType |
type
Zoom area shape type.
|
protected java.awt.image.BufferedImage |
view |
protected int |
zoomFactor
Zoom factor.
|
protected javax.swing.JComponent |
zoomProvider
Runtime variables.
|
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW| Constructor and Description |
|---|
MagnifierGlass()
Constructs magnifier that will work over the specified component.
|
MagnifierGlass(int zoomFactor)
Constructs magnifier that will work over the specified component.
|
| Modifier and Type | Method and Description |
|---|---|
void |
display(javax.swing.JComponent component)
Initializes magnifier on the window where specified component is located.
|
void |
display(java.awt.Window window)
Initializes magnifier on the specified window.
|
protected void |
displayOnGlassPane()
Display magnifier on the glass pane.
|
void |
displayOrDispose(javax.swing.JComponent component)
Initializes or disposes magnifier on the window where specified component is located.
|
void |
displayOrDispose(java.awt.Window window)
Initializes or disposes magnifier on the specified window.
|
void |
dispose()
Hides magnifier.
|
protected void |
disposeFromGlassPane()
Dispose magnifier from the glass pane.
|
protected java.awt.Dimension |
getBufferSize()
Returns UI buffer image size.
|
float |
getDummyCursorOpacity()
Returns dummy cursor opacity.
|
long |
getForceUpdateFrequency()
Returns milliseconds to forcefully update magnifier buffer.
|
MagnifierPosition |
getPosition()
Returns magnifier position.
|
java.awt.Dimension |
getPreferredSize() |
int |
getRound()
Returns rectangular magnifier round.
|
protected javax.swing.Icon |
getShadeIcon()
Returns custom shade icon.
|
int |
getShadeWidth()
Returns magnifier shade width.
|
MagnifierType |
getType()
Returns zoom area shape type.
|
java.awt.Dimension |
getZoomAreaSize()
Returns zoom area size.
|
int |
getZoomFactor()
Returns zoom factor.
|
protected javax.swing.JComponent |
getZoomProvider(java.awt.Window window)
Returns zoom provider component for the specified window.
|
boolean |
isDisplayDummyCursor()
Returns whether or not dummy cursor should be displayed on magnified image.
|
boolean |
isDisplayed()
Returns whether or not this magnifier is currently displayed.
|
protected void |
paintComponent(java.awt.Graphics g) |
protected void |
restartForceUpdater()
Properly restarts
|
void |
setDisplayDummyCursor(boolean display)
Sets whether or not dummy cursor should be displayed on magnified image.
|
void |
setDummyCursorOpacity(float opacity)
Sets dummy cursor opacity.
|
void |
setForceUpdateFrequency(long forceUpdateFrequency)
Sets milliseconds to forcefully update magnifier buffer.
|
void |
setPosition(MagnifierPosition position)
Sets magnifier position.
|
void |
setRound(int round)
Sets rectangular magnifier round.
|
void |
setShadeWidth(int shadeWidth)
Sets magnifier shade width.
|
void |
setType(MagnifierType type)
Sets zoom area shape type.
|
void |
setZoomAreaSize(java.awt.Dimension size)
Sets zoom area size.
|
void |
setZoomFactor(int zoomFactor)
Sets zoom factor.
|
protected void |
updatePreview()
Updates magnified UI preview.
|
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, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, 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, updateUIadd, 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, validateTreeaction, 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, getAccessibleContext, 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, 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, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCyclepublic static final javax.swing.ImageIcon cursorIcon
protected java.awt.Dimension size
protected MagnifierType type
protected MagnifierPosition position
protected int shadeWidth
protected int round
protected int zoomFactor
protected boolean displayDummyCursor
protected float dummyCursorOpacity
protected long forceUpdateFrequency
protected javax.swing.JComponent zoomProvider
protected java.awt.Cursor defaultCursor
protected java.awt.image.BufferedImage buffer
protected java.awt.image.BufferedImage view
protected java.awt.event.AWTEventListener listener
protected com.alee.utils.swing.WebTimer forceUpdater
protected javax.swing.Icon shadeIcon
protected int lastShadeWidth
protected boolean rendered
public MagnifierGlass()
public MagnifierGlass(int zoomFactor)
public java.awt.Dimension getZoomAreaSize()
public void setZoomAreaSize(java.awt.Dimension size)
size - zoom area sizepublic MagnifierType getType()
public void setType(MagnifierType type)
type - zoom area shape typepublic MagnifierPosition getPosition()
public void setPosition(MagnifierPosition position)
position - magnifier positionpublic int getShadeWidth()
public void setShadeWidth(int shadeWidth)
shadeWidth - magnifier shade widthpublic int getRound()
public void setRound(int round)
round - rectangular magnifier roundpublic int getZoomFactor()
public void setZoomFactor(int zoomFactor)
zoomFactor - zoom factorpublic boolean isDisplayDummyCursor()
public void setDisplayDummyCursor(boolean display)
display - whether or not dummy cursor should be displayed on magnified imagepublic float getDummyCursorOpacity()
public void setDummyCursorOpacity(float opacity)
opacity - dummy cursor opacitypublic long getForceUpdateFrequency()
public void setForceUpdateFrequency(long forceUpdateFrequency)
forceUpdateFrequency - milliseconds to forcefully update magnifier bufferprotected void restartForceUpdater()
protected java.awt.Dimension getBufferSize()
protected void updatePreview()
protected void paintComponent(java.awt.Graphics g)
paintComponent in class javax.swing.JComponentprotected javax.swing.Icon getShadeIcon()
public void displayOrDispose(java.awt.Window window)
window - magnifier windowpublic void displayOrDispose(javax.swing.JComponent component)
component - magnifier providerpublic void display(java.awt.Window window)
window - magnifier windowpublic void display(javax.swing.JComponent component)
component - magnifier providerpublic void dispose()
public boolean isDisplayed()
Component.isShowing() method like in any other Swing component.protected javax.swing.JComponent getZoomProvider(java.awt.Window window)
window - window to retrieve zoom provider forprotected void displayOnGlassPane()
protected void disposeFromGlassPane()
public java.awt.Dimension getPreferredSize()
getPreferredSize in class javax.swing.JComponent