Class JXPanel
- All Implemented Interfaces:
ImageObserver
,MenuContainer
,Serializable
,Accessible
,Scrollable
- Direct Known Subclasses:
AbstractPatternPanel
,GradientPreviewPanel
,JXCollapsiblePane
,JXGradientChooser
,JXGraph
,JXHeader
,JXImageView
,JXLoginPane
,JXTaskPaneContainer
,JXTipOfTheDay
,JXTitledPanel
,JXTitledSeparator
,SpinningCalendarHeaderHandler.SpinningCalendarHeader
,WrappingIconPanel
An extended JPanel
that provides additional features.
Scrollable
JXPanel
is Scrollable
by default. It provides reasonable implementations of all
of the interface methods. In addition, it supports the setting of common scrolling approaches
defined in ScrollableSizeHint
.
Alpha Support
JXPanel
has full alpha-channel support. This means that the JXPanel
can be made
fully or partially transparent. This means that the JXPanel and all of its children will behave
as a single paint at the specified alpha value. Cauton: best practice is to use
either alpha support or opacity support, but not both. See the documentation on the methods for
further information.
A transparency example, this following code will show the black background of the parent:
JXPanel panel = new JXPanel(); panel.add(new JButton("Push Me")); panel.setAlpha(.5f); container.setBackground(Color.BLACK); container.add(panel);
Painter Support
JXPanel
has support for Painters.
A painter example, this following code will show how to add a simple painter:
JXPanel panel = new JXPanel(); panel.setBackgroundPainter(new PinstripePainter());
- Author:
- rbair
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
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
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
Fields inherited from class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
-
Constructor Summary
ConstructorsConstructorDescriptionJXPanel()
Creates a newJXPanel
with a double buffer and a flow layout.JXPanel
(boolean isDoubleBuffered) Creates a newJXPanel
withFlowLayout
and the specified buffering strategy.JXPanel
(LayoutManager layout) Create a new buffered JXPanel with the specified layout managerJXPanel
(LayoutManager layout, boolean isDoubleBuffered) Creates a new JXPanel with the specified layout manager and buffering strategy. -
Method Summary
Modifier and TypeMethodDescriptionfloat
getAlpha()
Painter<? super JComponent>
Returns the current background painter.float
protected PropertyChangeListener
int
getScrollableBlockIncrement
(Rectangle visibleRect, int orientation, int direction) protected ScrollableSizeHint
get scrollableHeightHintboolean
boolean
int
getScrollableUnitIncrement
(Rectangle visibleRect, int orientation, int direction) protected ScrollableSizeHint
get scrollableWidthHintprotected boolean
isAlpha()
Returns whether or not the container hierarchy below is transparent.boolean
boolean
isOpaque()
protected boolean
when background should be painted returns if patch is opaqueboolean
Returns true if the background painter should paint where the border is or false if it should only paint inside the border.protected boolean
Returns whether or not the background should be painted.protected boolean
protected boolean
isPatch()
protected boolean
Returns whether or not the background is transparent.void
Overridden paint method to take into account the alpha setting.protected void
Overridden to provide Painter support.protected void
void
setAlpha
(float alpha) void
setBackgroundPainter
(Painter<? super JComponent> p) Sets a Painter to use to paint the background of this JXPanel.void
setInheritAlpha
(boolean val) void
setOpaque
(boolean opaque) protected void
setOpaquePatch
(boolean opaque) void
setPaintBorderInsets
(boolean paintBorderInsets) Sets the paintBorderInsets property.final void
Sets the vertical sizing hint.void
setScrollableTracksViewportHeight
(boolean scrollableTracksViewportHeight) Sets the vertical size tracking to either ScrollableSizeTrack.FIT or NONE, if the boolean parameter is true or false, respectively.void
setScrollableTracksViewportWidth
(boolean scrollableTracksViewportWidth) Sets the horizontal size tracking to either ScrollableSizeTrack.FIT or NONE, if the boolean parameter is true or false, respectively.final void
Sets the horizontal sizing hint.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, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, 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, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, 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
-
Constructor Details
-
JXPanel
public JXPanel()Creates a newJXPanel
with a double buffer and a flow layout. -
JXPanel
public JXPanel(boolean isDoubleBuffered) Creates a newJXPanel
withFlowLayout
and the specified buffering strategy. IfisDoubleBuffered
is true, theJXPanel
will use a double buffer.- Parameters:
isDoubleBuffered
- a boolean, true for double-buffering, which uses additional memory space to achieve fast, flicker-free updates
-
JXPanel
Create a new buffered JXPanel with the specified layout manager- Parameters:
layout
- the LayoutManager to use
-
JXPanel
Creates a new JXPanel with the specified layout manager and buffering strategy.- Parameters:
layout
- the LayoutManager to useisDoubleBuffered
- a boolean, true for double-buffering, which uses additional memory space to achieve fast, flicker-free updates
-
-
Method Details
-
setOpaque
public void setOpaque(boolean opaque) Setting the component to be opaque will reset the alpha setting to
1f
(full opaqueness). Setting the component to be non-opaque will restore the previous alpha transparency. If the component is non-opaque with a fully-opaque alpha value (1f
), the behavior should be the same as as aJPanel
that is non-opaque.- Overrides:
setOpaque
in classJComponent
-
isOpaque
public boolean isOpaque()- Overrides:
isOpaque
in classJComponent
-
getAlpha
public float getAlpha() -
setAlpha
public void setAlpha(float alpha) -
getEffectiveAlpha
public float getEffectiveAlpha() -
isInheritAlpha
public boolean isInheritAlpha() -
setInheritAlpha
public void setInheritAlpha(boolean val) -
setScrollableWidthHint
Sets the horizontal sizing hint. The hint is used by the Scrollable implementation to service the getScrollableTracksWidth.- Parameters:
hint
- the horizontal sizing hint, must not be null and must be vertical.- Throws:
NullPointerException
- if null- See Also:
-
setScrollableHeightHint
Sets the vertical sizing hint. The hint is used by the Scrollable implementation to service the getScrollableTracksHeight.- Parameters:
hint
- the vertical sizing hint, must not be null and must be vertical.- Throws:
NullPointerException
- if null- See Also:
-
getScrollableWidthHint
get scrollableWidthHint- Returns:
- ScrollableSizeHint
-
getScrollableHeightHint
get scrollableHeightHint- Returns:
- ScrollableSizeHint
-
getScrollableTracksViewportHeight
public boolean getScrollableTracksViewportHeight()- Specified by:
getScrollableTracksViewportHeight
in interfaceScrollable
-
getScrollableTracksViewportWidth
public boolean getScrollableTracksViewportWidth()- Specified by:
getScrollableTracksViewportWidth
in interfaceScrollable
-
getPreferredScrollableViewportSize
- Specified by:
getPreferredScrollableViewportSize
in interfaceScrollable
-
getScrollableBlockIncrement
- Specified by:
getScrollableBlockIncrement
in interfaceScrollable
-
getScrollableUnitIncrement
- Specified by:
getScrollableUnitIncrement
in interfaceScrollable
-
setScrollableTracksViewportHeight
public void setScrollableTracksViewportHeight(boolean scrollableTracksViewportHeight) Sets the vertical size tracking to either ScrollableSizeTrack.FIT or NONE, if the boolean parameter is true or false, respectively.NOTE: this method is kept for backward compatibility only, for full control use setScrollableHeightHint.
- Parameters:
scrollableTracksViewportHeight
- The scrollableTracksViewportHeight to set.- See Also:
-
setScrollableTracksViewportWidth
public void setScrollableTracksViewportWidth(boolean scrollableTracksViewportWidth) Sets the horizontal size tracking to either ScrollableSizeTrack.FIT or NONE, if the boolean parameter is true or false, respectively.NOTE: this method is kept for backward compatibility only, for full control use setScrollableWidthHint.
- Parameters:
scrollableTracksViewportWidth
- The scrollableTracksViewportWidth to set.- See Also:
-
getPainterChangeListener
- Returns:
- a listener for painter change events
-
setBackgroundPainter
Sets a Painter to use to paint the background of this JXPanel.- Parameters:
p
- the new painter- See Also:
-
getBackgroundPainter
Returns the current background painter. The default value of this property is a painter which draws the normal JPanel background according to the current look and feel.- Returns:
- the current painter
- See Also:
-
isPaintBorderInsets
public boolean isPaintBorderInsets()Returns true if the background painter should paint where the border is or false if it should only paint inside the border. This property is true by default. This property affects the width, height, and initial transform passed to the background painter. -
setPaintBorderInsets
public void setPaintBorderInsets(boolean paintBorderInsets) Sets the paintBorderInsets property. Set to true if the background painter should paint where the border is or false if it should only paint inside the border. This property is true by default. This property affects the width, height, and initial transform passed to the background painter. This is a bound property. -
isPaintingOrigin
protected boolean isPaintingOrigin()- Overrides:
isPaintingOrigin
in classJComponent
-
paint
Overridden paint method to take into account the alpha setting.- Overrides:
paint
in classJComponent
- Parameters:
g
- theGraphics
context in which to paint
-
paintComponent
Overridden to provide Painter support. It will call backgroundPainter.paint() if it is not null, else it will call super.paintComponent().- Overrides:
paintComponent
in classJComponent
- Parameters:
g
- theGraphics
context in which to paint
-
isPatch
protected boolean isPatch() -
paintComponentPatch
-
isOpaquePatch
protected boolean isOpaquePatch()when background should be painted returns if patch is opaque- Returns:
- true if this component is completely opaque.
-
setOpaquePatch
protected void setOpaquePatch(boolean opaque) -
isAlpha
protected boolean isAlpha()Returns whether or not the container hierarchy below is transparent.- Returns:
- true if getAlpha() in AlphaPaintable < 1.0
-
isTransparentBackground
protected boolean isTransparentBackground()Returns whether or not the background is transparent.- Returns:
- true if background'a Alpha < 255
-
isPaintingBackground
protected boolean isPaintingBackground()Returns whether or not the background should be painted.- Returns:
- true if panel is opaque
-