Package org.jdesktop.swingx
Class JXRadioGroup<T>
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- org.jdesktop.swingx.JXRadioGroup<T>
-
- All Implemented Interfaces:
java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.io.Serializable
,javax.accessibility.Accessible
public class JXRadioGroup<T> extends javax.swing.JPanel
JXRadioGroup
is a group of radio buttons that functions as a unit. It is similar in concept to aJComboBox
in functionality, but can offer a better presentation for a small number of choices.JXRadioGroup
should be used in preference toJComboBox
when the number of choices is small (less than six) or the choices are verbose.Notes:
- Enabling and disabling the JXRadioGroup will enable/disable all of the child buttons inside the JXRadioGroup.
-
If the generic type parameter of JXRadioGroup is a subclass of
AbstractButton
, then the buttons will be added "as is" to the container. If the generic type is anything else, buttons will be created asJRadioButton
objects, and the button text will be set by calling toString() on the value object. -
Alternatively, if you want to configure the buttons individually, construct
the JXRadioGroup normally, and then call
getChildButton(int)
orgetChildButton(Object)
and configure the buttons.
TODO back with a model (possibly reuse of extend
ComboBoxModel
- Version:
- 1.0
- Author:
- Amy Fowler, Noel Grandin
- 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 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 JXRadioGroup()
Create a default JXRadioGroup with a default layout axis ofBoxLayout.X_AXIS
.JXRadioGroup(T[] radioValues)
Create a default JXRadioGroup with a default layout axis ofBoxLayout.X_AXIS
.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
add(T radioValue)
You can use this method to manually add your own AbstractButton objects, provided you declared the class asJXRadioGroup<JRadioButton>
.void
addActionListener(java.awt.event.ActionListener l)
Adds anActionListener
.static <T> JXRadioGroup<T>
create(T[] radioValues)
Convenience factory method.protected void
fireActionEvent(java.awt.event.ActionEvent e)
Notifies all listeners that have registered interest for notification on this event type.java.awt.event.ActionListener[]
getActionListeners()
Returns an array of all theActionListener
s added to this JRadioGroup with addActionListener().javax.swing.AbstractButton
getChildButton(int index)
Retrieve the child button by index.javax.swing.AbstractButton
getChildButton(T value)
Retrieve the child button that represents this value.int
getChildButtonCount()
Get the number of child buttons.javax.swing.AbstractButton
getSelectedButton()
Gets the currently selected button.T
getSelectedValue()
The currently selected value.void
removeActionListener(java.awt.event.ActionListener l)
Removes anActionListener
.void
setEnabled(boolean enabled)
Enable/disable all of the child buttonsvoid
setLayoutAxis(int axis)
Set the layout axis of the radio group.void
setSelectedValue(T value)
Selects the supplied value.void
setValues(T[] radioValues)
Sets the values backing this group.-
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, paintComponent, 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, 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
-
JXRadioGroup
public JXRadioGroup()
Create a default JXRadioGroup with a default layout axis ofBoxLayout.X_AXIS
.
-
JXRadioGroup
public JXRadioGroup(T[] radioValues)
Create a default JXRadioGroup with a default layout axis ofBoxLayout.X_AXIS
.- Parameters:
radioValues
- the list of values used to create the group.
-
-
Method Detail
-
create
public static <T> JXRadioGroup<T> create(T[] radioValues)
Convenience factory method. Reduces code clutter when dealing with generics.- Parameters:
radioValues
- the list of values used to create the group.
-
setLayoutAxis
public void setLayoutAxis(int axis)
Set the layout axis of the radio group.- Parameters:
axis
- values fromBoxLayout
.
-
setValues
public void setValues(T[] radioValues)
Sets the values backing this group. This replaces the current set of values with the new set.- Parameters:
radioValues
- the new backing values for this group
-
add
public void add(T radioValue)
You can use this method to manually add your own AbstractButton objects, provided you declared the class asJXRadioGroup<JRadioButton>
.
-
getSelectedButton
public javax.swing.AbstractButton getSelectedButton()
Gets the currently selected button.- Returns:
- the currently selected button
- See Also:
getSelectedValue()
-
getSelectedValue
public T getSelectedValue()
The currently selected value.- Returns:
- the current value
-
setSelectedValue
public void setSelectedValue(T value)
Selects the supplied value.- Parameters:
value
- the value to select
-
getChildButton
public javax.swing.AbstractButton getChildButton(int index)
Retrieve the child button by index.
-
getChildButton
public javax.swing.AbstractButton getChildButton(T value)
Retrieve the child button that represents this value.
-
getChildButtonCount
public int getChildButtonCount()
Get the number of child buttons.
-
addActionListener
public void addActionListener(java.awt.event.ActionListener l)
Adds anActionListener
.The
ActionListener
will receive anActionEvent
when a selection has been made.- Parameters:
l
- theActionListener
that is to be notified- See Also:
#setSelectedItem
-
removeActionListener
public void removeActionListener(java.awt.event.ActionListener l)
Removes anActionListener
.- Parameters:
l
- theActionListener
to remove
-
getActionListeners
public java.awt.event.ActionListener[] getActionListeners()
Returns an array of all theActionListener
s added to this JRadioGroup with addActionListener().- Returns:
- all of the
ActionListener
s added or an empty array if no listeners have been added
-
fireActionEvent
protected void fireActionEvent(java.awt.event.ActionEvent e)
Notifies all listeners that have registered interest for notification on this event type.- Parameters:
e
- the event to pass to the listeners- See Also:
EventListenerList
-
setEnabled
public void setEnabled(boolean enabled)
Enable/disable all of the child buttons- Overrides:
setEnabled
in classjavax.swing.JComponent
- See Also:
JComponent.setEnabled(boolean)
-
-