Class FlatTriStateCheckBox
- All Implemented Interfaces:
ImageObserver, ItemSelectable, MenuContainer, Serializable, Accessible, SwingConstants
- Direct Known Subclasses:
FlatThemePreviewSwitches.ZoomTriStateCheckBox
The initial state is FlatTriStateCheckBox.State.INDETERMINATE.
By default, the third state is allowed and clicking on the checkbox cycles through all
three states. If you want that the user can cycle only through two states, disallow
intermediate state using setAllowIndeterminate(boolean). Then you can still
set the indeterminate state via API if necessary, but the user can not.
The default state cycle order is FlatTriStateCheckBox.State.UNSELECTED to FlatTriStateCheckBox.State.INDETERMINATE
to FlatTriStateCheckBox.State.SELECTED.
This is the same order as used by macOS, win32, IntelliJ IDEA and on the web as recommended by W3C in
Tri-State Checkbox Example).
If isAltStateCycleOrder() returns true,
the state cycle order is FlatTriStateCheckBox.State.UNSELECTED to FlatTriStateCheckBox.State.SELECTED
to FlatTriStateCheckBox.State.INDETERMINATE. This order is used by Windows 10 UWP apps.
If you prefer the alternative state cycle order for all tri-state check boxes, enable it using:
UIManager.put( "FlatTriStateCheckBox.altStateCycleOrder", true );
To display the third state, this component requires an LaF that supports painting
the indeterminate state if client property "JButton.selectedState" has the
value "indeterminate".
FlatLaf and macOS Aqua LaF support the third state.
For other LaFs a magenta rectangle is painted around the component for the third state.
- See Also:
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class JCheckBox
JCheckBox.AccessibleJCheckBoxNested classes/interfaces inherited from class JToggleButton
JToggleButton.AccessibleJToggleButton, JToggleButton.ToggleButtonModelNested classes/interfaces inherited from class AbstractButton
AbstractButton.AccessibleAbstractButton, AbstractButton.ButtonChangeListenerNested classes/interfaces inherited from class JComponent
JComponent.AccessibleJComponentNested classes/interfaces inherited from class Container
Container.AccessibleAWTContainerNested classes/interfaces inherited from class Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate booleanprivate booleanprivate FlatTriStateCheckBox.StateFields inherited from class JCheckBox
BORDER_PAINTED_FLAT_CHANGED_PROPERTYFields inherited from class AbstractButton
actionListener, BORDER_PAINTED_CHANGED_PROPERTY, changeEvent, changeListener, CONTENT_AREA_FILLED_CHANGED_PROPERTY, DISABLED_ICON_CHANGED_PROPERTY, DISABLED_SELECTED_ICON_CHANGED_PROPERTY, FOCUS_PAINTED_CHANGED_PROPERTY, HORIZONTAL_ALIGNMENT_CHANGED_PROPERTY, HORIZONTAL_TEXT_POSITION_CHANGED_PROPERTY, ICON_CHANGED_PROPERTY, itemListener, MARGIN_CHANGED_PROPERTY, MNEMONIC_CHANGED_PROPERTY, model, MODEL_CHANGED_PROPERTY, PRESSED_ICON_CHANGED_PROPERTY, ROLLOVER_ENABLED_CHANGED_PROPERTY, ROLLOVER_ICON_CHANGED_PROPERTY, ROLLOVER_SELECTED_ICON_CHANGED_PROPERTY, SELECTED_ICON_CHANGED_PROPERTY, TEXT_CHANGED_PROPERTY, VERTICAL_ALIGNMENT_CHANGED_PROPERTY, VERTICAL_TEXT_POSITION_CHANGED_PROPERTYFields inherited from class JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOWFields inherited from class Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTFields inherited from interface ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTHFields inherited from interface SwingConstants
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST -
Constructor Summary
ConstructorsConstructorDescriptionFlatTriStateCheckBox(String text) FlatTriStateCheckBox(String text, FlatTriStateCheckBox.State initialState) -
Method Summary
Modifier and TypeMethodDescriptionReturns the state asBoolean.getState()Returns the state asFlatTriStateCheckBox.Stateenum.booleanReturns whether indeterminate state is allowed.booleanReturns whether alternative state cycle order should be used.booleanReturns whether state is indeterminate.protected booleanReturns whether the current LaF supports displaying the indeterminate state.protected FlatTriStateCheckBox.StateReturns the next state that follows the given state, depending onisAllowIndeterminate()andisAltStateCycleOrder().protected voidprotected voidPaints the indeterminate state if the current LaF does not support displaying the indeterminate state.voidsetAllowIndeterminate(boolean allowIndeterminate) Sets whether indeterminate state is allowed.voidsetAltStateCycleOrder(boolean altStateCycleOrder) Sets whether alternative state cycle order should be used.voidsetChecked(Boolean value) Sets the state asBoolean.voidsetIndeterminate(boolean indeterminate) Sets indeterminate state.voidsetSelected(boolean b) voidSets the state asFlatTriStateCheckBox.Stateenum.Methods inherited from class JCheckBox
getAccessibleContext, getUIClassID, isBorderPaintedFlat, paramString, setBorderPaintedFlat, updateUIMethods inherited from class JToggleButton
requestFocus, requestFocusInWindowMethods inherited from class AbstractButton
actionPropertyChanged, addActionListener, addChangeListener, addImpl, addItemListener, checkHorizontalKey, checkVerticalKey, configurePropertiesFromAction, createActionListener, createActionPropertyChangeListener, createChangeListener, createItemListener, doClick, doClick, fireActionPerformed, fireItemStateChanged, fireStateChanged, getAction, getActionCommand, getActionListeners, getChangeListeners, getDisabledIcon, getDisabledSelectedIcon, getDisplayedMnemonicIndex, getHideActionText, getHorizontalAlignment, getHorizontalTextPosition, getIcon, getIconTextGap, getItemListeners, getLabel, getMargin, getMnemonic, getModel, getMultiClickThreshhold, getPressedIcon, getRolloverIcon, getRolloverSelectedIcon, getSelectedIcon, getSelectedObjects, getText, getUI, getVerticalAlignment, getVerticalTextPosition, imageUpdate, init, isBorderPainted, isContentAreaFilled, isFocusPainted, isRolloverEnabled, isSelected, paintBorder, removeActionListener, removeChangeListener, removeItemListener, removeNotify, setAction, setActionCommand, setBorderPainted, setContentAreaFilled, setDisabledIcon, setDisabledSelectedIcon, setDisplayedMnemonicIndex, setEnabled, setFocusPainted, setHideActionText, setHorizontalAlignment, setHorizontalTextPosition, setIcon, setIconTextGap, setLabel, setLayout, setMargin, setMnemonic, setMnemonic, setModel, setMultiClickThreshhold, setPressedIcon, setRolloverEnabled, setRolloverIcon, setRolloverSelectedIcon, setSelectedIcon, setText, setUI, setVerticalAlignment, setVerticalTextPositionMethods inherited from class 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, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, 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, updateMethods inherited from class Container
add, add, add, add, add, addContainerListener, 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, transferFocusDownCycle, validate, validateTreeMethods inherited from class 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, 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, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
Field Details
-
state
-
allowIndeterminate
private boolean allowIndeterminate -
altStateCycleOrder
private boolean altStateCycleOrder
-
-
Constructor Details
-
FlatTriStateCheckBox
public FlatTriStateCheckBox() -
FlatTriStateCheckBox
-
FlatTriStateCheckBox
-
-
Method Details
-
getState
Returns the state asFlatTriStateCheckBox.Stateenum.Alternatively you can use
getChecked()to get all three states asBooleanorisIndeterminate()to check only for indeterminate state. -
setState
Sets the state asFlatTriStateCheckBox.Stateenum. -
nextState
Returns the next state that follows the given state, depending onisAllowIndeterminate()andisAltStateCycleOrder(). -
getChecked
Returns the state asBoolean. Returnsnullif the state isFlatTriStateCheckBox.State.INDETERMINATE.Alternatively you can use
getState()to get state asFlatTriStateCheckBox.Stateenum orisIndeterminate()to check only for indeterminate state. -
setChecked
-
setSelected
public void setSelected(boolean b) - Overrides:
setSelectedin classAbstractButton
-
isIndeterminate
public boolean isIndeterminate()Returns whether state is indeterminate. -
setIndeterminate
public void setIndeterminate(boolean indeterminate) Sets indeterminate state. -
isAllowIndeterminate
public boolean isAllowIndeterminate()Returns whether indeterminate state is allowed.This affects only the user when clicking on the checkbox. Setting state to indeterminate via API is always allowed.
-
setAllowIndeterminate
public void setAllowIndeterminate(boolean allowIndeterminate) Sets whether indeterminate state is allowed.This affects only the user when clicking on the checkbox. Setting state to indeterminate via API is always allowed.
-
isAltStateCycleOrder
public boolean isAltStateCycleOrder()Returns whether alternative state cycle order should be used. -
setAltStateCycleOrder
public void setAltStateCycleOrder(boolean altStateCycleOrder) Sets whether alternative state cycle order should be used. -
paintComponent
- Overrides:
paintComponentin classJComponent
-
paintIndeterminateState
Paints the indeterminate state if the current LaF does not support displaying the indeterminate state. The default implementation draws a magenta rectangle around the component. -
isIndeterminateStateSupported
protected boolean isIndeterminateStateSupported()Returns whether the current LaF supports displaying the indeterminate state. Returnstruefor FlatLaf and macOS Aqua.
-