Package org.jdesktop.swingx
Class JXPanel
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- org.jdesktop.swingx.JXPanel
-
- All Implemented Interfaces:
ImageObserver
,MenuContainer
,Serializable
,Accessible
,Scrollable
- Direct Known Subclasses:
AbstractPatternPanel
,GradientPreviewPanel
,JXCollapsiblePane
,JXGradientChooser
,JXGraph
,JXHeader
,JXImagePanel
,JXImageView
,JXLoginPane
,JXTaskPaneContainer
,JXTipOfTheDay
,JXTitledPanel
,JXTitledSeparator
,SpinningCalendarHeaderHandler.SpinningCalendarHeader
,WrappingIconPanel
public class JXPanel extends JPanel implements Scrollable
An extended
JPanel
that provides additional features. First, the component isScrollable
, using reasonable defaults. Second, the component is alpha-channel enabled. This means that theJXPanel
can be made fully or partially transparent. Finally,JXPanel
has support for painters.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);
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:
Scrollable
,Painter
, Serialized Form
-
-
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
Constructors Constructor Description JXPanel()
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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description float
getAlpha()
Painter
getBackgroundPainter()
Returns the current background painter.float
getEffectiveAlpha()
Unlike other properties, alpha can be set on a component, or on one of its parents.protected PropertyChangeListener
getPainterChangeListener()
Dimension
getPreferredScrollableViewportSize()
int
getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction)
protected ScrollableSizeHint
getScrollableHeightHint()
boolean
getScrollableTracksViewportHeight()
boolean
getScrollableTracksViewportWidth()
int
getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction)
protected ScrollableSizeHint
getScrollableWidthHint()
boolean
isInheritAlpha()
Returns the state of the panel with respect to inheriting alpha values.boolean
isPaintBorderInsets()
Returns true if the background painter should paint where the border is or false if it should only paint inside the border.void
paint(Graphics g)
Overridden paint method to take into account the alpha settingprotected void
paintComponent(Graphics g)
Overridden to provide Painter support.void
setAlpha(float alpha)
Set the alpha transparency level for this component.void
setBackground(Color bg)
Sets the background color for this component byvoid
setBackgroundPainter(Painter p)
Sets a Painter to use to paint the background of this JXPanel.void
setInheritAlpha(boolean val)
Determines if the effective alpha of this component should include the alpha of ancestors.void
setPaintBorderInsets(boolean paintBorderInsets)
Sets the paintBorderInsets property.void
setScrollableHeightHint(ScrollableSizeHint hint)
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.void
setScrollableWidthHint(ScrollableSizeHint hint)
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, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, 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, 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
-
-
-
-
Constructor Detail
-
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
public JXPanel(LayoutManager layout)
Create a new buffered JXPanel with the specified layout manager- Parameters:
layout
- the LayoutManager to use
-
JXPanel
public JXPanel(LayoutManager layout, boolean isDoubleBuffered)
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 Detail
-
setAlpha
public void setAlpha(float alpha)
Set the alpha transparency level for this component. This automatically causes a repaint of the component.TODO add support for animated changes in translucency
- Parameters:
alpha
- must be a value between 0 and 1 inclusive.
-
getAlpha
public float getAlpha()
- Returns:
- the alpha translucency level for this component. This will be a value between 0 and 1, inclusive.
-
getEffectiveAlpha
public float getEffectiveAlpha()
Unlike other properties, alpha can be set on a component, or on one of its parents. If the alpha of a parent component is .4, and the alpha on this component is .5, effectively the alpha for this component is .4 because the lowest alpha in the heirarchy "wins"
-
isInheritAlpha
public boolean isInheritAlpha()
Returns the state of the panel with respect to inheriting alpha values.- Returns:
true
if this panel inherits alpha values;false
otherwise- See Also:
setInheritAlpha(boolean)
-
setInheritAlpha
public void setInheritAlpha(boolean val)
Determines if the effective alpha of this component should include the alpha of ancestors.- Parameters:
val
-true
to include ancestral alpha data;false
otherwise- See Also:
isInheritAlpha()
,getEffectiveAlpha()
-
setScrollableWidthHint
public final void setScrollableWidthHint(ScrollableSizeHint hint)
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:
IllegalArgumentException
- if track not horizontalNullPointerException
- if null- See Also:
setScrollableHeightHint(ScrollableSizeHint)
,ScrollableSizeHint
-
setScrollableHeightHint
public final void setScrollableHeightHint(ScrollableSizeHint hint)
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:
IllegalArgumentException
- if track not verticalNullPointerException
- if null- See Also:
setScrollableWidthHint(ScrollableSizeHint)
,ScrollableSizeHint
-
getScrollableWidthHint
protected ScrollableSizeHint getScrollableWidthHint()
-
getScrollableHeightHint
protected ScrollableSizeHint getScrollableHeightHint()
-
getScrollableTracksViewportHeight
public boolean getScrollableTracksViewportHeight()
- Specified by:
getScrollableTracksViewportHeight
in interfaceScrollable
-
getScrollableTracksViewportWidth
public boolean getScrollableTracksViewportWidth()
- Specified by:
getScrollableTracksViewportWidth
in interfaceScrollable
-
getPreferredScrollableViewportSize
public Dimension getPreferredScrollableViewportSize()
- Specified by:
getPreferredScrollableViewportSize
in interfaceScrollable
-
getScrollableBlockIncrement
public int getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction)
- Specified by:
getScrollableBlockIncrement
in interfaceScrollable
-
getScrollableUnitIncrement
public int getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction)
- 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:
setScrollableHeightHint(ScrollableSizeHint)
-
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:
setScrollableWidthHint(ScrollableSizeHint)
-
setBackground
public void setBackground(Color bg)
Sets the background color for this component by- Overrides:
setBackground
in classJComponent
- Parameters:
bg
- the desired backgroundColor
- See Also:
java.swing.JComponent#getBackground
,JComponent.setOpaque(boolean)
-
setBackgroundPainter
public void setBackgroundPainter(Painter p)
Sets a Painter to use to paint the background of this JXPanel.- Parameters:
p
- the new painter- See Also:
getBackgroundPainter()
-
getPainterChangeListener
protected PropertyChangeListener getPainterChangeListener()
- Returns:
-
getBackgroundPainter
public Painter 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:
setBackgroundPainter(Painter)
,isPaintBorderInsets()
-
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.
-
paint
public void paint(Graphics g)
Overridden paint method to take into account the alpha setting- Overrides:
paint
in classJComponent
- Parameters:
g
-
-
paintComponent
protected void paintComponent(Graphics g)
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
-
-