Package com.jidesoft.swing
Class CheckBoxList
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JList
com.jidesoft.swing.CheckBoxList
- All Implemented Interfaces:
ImageObserver
,MenuContainer
,Serializable
,Accessible
,Scrollable
CheckBoxList
is a special JList which uses JCheckBox as the list element. In addition to regular JList
feature, it also allows you select any number of elements in the list by selecting the check boxes.
To select an element, user can mouse click on the check box, or highlight the rows and press SPACE key to toggle the
selections.
We used cell renderer feature in JList to add the check box in each row. However you can still set your own cell
renderer just like before using JList.setCellRenderer(javax.swing.ListCellRenderer)
. CheckBoxList will use your
cell renderer and automatically put a check box before it.
The selection state is kept in a ListSelectionModel called CheckBoxListSelectionModel, which you can get using getCheckBoxListSelectionModel()
. If you need to add a check to a check box or to find out if a check
box is checked, you need to ask the getCheckBoxListSelectionModel() by using addListSelectionListener.
It is possible to add an "(All)" item. All you need to do is to add CheckBoxList.ALL_ENTRY to the list model. Then
check the (All) item will select all the check boxes and uncheck it will deselect all.
Please note, we changed CheckBoxList implementation in 1.9.2 release. The old CheckBoxList class is renamed to CheckBoxListWithSelectable
. If you want to use the old implementation, you can use CheckBoxListWithSelectable
instead. The main difference between the two implementation is at how the selection state is kept. In new
implementation, the selection state is kept at a separate ListSelectionModel which you can get using getCheckBoxListSelectionModel()
. If you need to add a check to a check box or to find out if a check
box is checked, you need to ask the getCheckBoxListSelectionModel() by using addListSelectionListener. The old
implementation kept the selection state at Selectable object in the ListModel. The new implementation also has the
same design as that of CheckBoxTree
.- See Also:
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class javax.swing.JList
JList.AccessibleJList, JList.DropLocation
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
FieldsModifier and TypeFieldDescriptionprotected CheckBoxList.Handler
protected CheckBoxListCellRenderer
static final String
Deprecated.static final Object
The default all entry for CheckBoxList.static final String
static final String
Fields inherited from class javax.swing.JList
HORIZONTAL_WRAP, VERTICAL, VERTICAL_WRAP
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
ConstructorsConstructorDescriptionConstructs aCheckBoxList
with an empty model.CheckBoxList
(Object[] listData) Constructs aCheckBoxList
that displays the elements in the specifiedObject[]
.CheckBoxList
(Vector<?> listData) Constructs aCheckBoxList
that displays the elements in the specifiedVector
.CheckBoxList
(ListModel dataModel) Constructs aCheckBoxList
that displays the elements in the specified, non-null
model. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addCheckBoxListSelectedIndex
(int index) Selects a single cell and keeps all previous selections.void
addCheckBoxListSelectedValue
(Object anObject, boolean shouldScroll) Selects the specified object from the list and keep all previous selections.void
addCheckBoxListSelectedValues
(Object[] objects) Selects the specified objects from the list and keep all previous selections.void
protected CheckBoxListCellRenderer
Creates the cell renderer.protected CheckBoxListSelectionModel
protected CheckBoxList.Handler
Creates the mouse listener and key listener used by CheckBoxList.int
Returns the first selected index; returns -1 if there is no selected item.int[]
Returns an array of all of the selected indices in increasing order.Returns the first selected value, ornull
if the selection is empty.Object[]
Returns an array of the values for the selected cells.Gets the ListSelectionModel that keeps the check boxes' state information for CheckBoxList.int
int
getNextMatch
(String prefix, int startIndex, Position.Bias bias) protected void
init()
Initialize the CheckBoxList.boolean
Gets the value of property checkBoxEnabled.boolean
isCheckBoxEnabled
(int index) Checks if check box is enabled.boolean
isCheckBoxVisible
(int index) Checks if check box is visible.boolean
Gets the value of property clickInCheckBoxOnly.void
removeCheckBoxListSelectedIndex
(int index) Deselects a single cell.void
removeCheckBoxListSelectedValue
(Object anObject, boolean shouldScroll) Deselects the specified object from the list.void
removeCheckBoxListSelectedValues
(Object[] objects) Deselects the specified objects from the list and keep all previous selections.void
Selects all objects in this list.void
Deselects all objects in this list.void
setCheckBoxEnabled
(boolean checkBoxEnabled) Sets the value of property checkBoxEnabled.void
setCheckBoxListSelectedIndex
(int index) Selects a single cell and clear all other selections.void
setCheckBoxListSelectedIndices
(int[] indices) Selects a set of cells.void
setCheckBoxListSelectedValue
(Object anObject, boolean shouldScroll) Selects the specified object from the list and clear all other selections.void
setCheckBoxListSelectionModel
(CheckBoxListSelectionModel checkBoxListSelectionModel) void
setClickInCheckBoxOnly
(boolean clickInCheckBoxOnly) Sets the value of property clickInCheckBoxOnly.void
void
setSelectedObjects
(Object[] elements) Sets the selected elements.void
setSelectedObjects
(Vector<?> elements) Sets the selected elements.void
updateUI()
Methods inherited from class javax.swing.JList
addListSelectionListener, addSelectionInterval, clearSelection, createSelectionModel, ensureIndexIsVisible, fireSelectionValueChanged, getAccessibleContext, getAnchorSelectionIndex, getCellBounds, getDragEnabled, getDropLocation, getDropMode, getFirstVisibleIndex, getFixedCellHeight, getFixedCellWidth, getLayoutOrientation, getLeadSelectionIndex, getListSelectionListeners, getMaxSelectionIndex, getMinSelectionIndex, getModel, getPrototypeCellValue, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getSelectedIndex, getSelectedIndices, getSelectedValue, getSelectedValues, getSelectedValuesList, getSelectionBackground, getSelectionForeground, getSelectionMode, getSelectionModel, getToolTipText, getUI, getUIClassID, getValueIsAdjusting, getVisibleRowCount, indexToLocation, isSelectedIndex, isSelectionEmpty, locationToIndex, paramString, removeListSelectionListener, removeSelectionInterval, setCellRenderer, setDragEnabled, setDropMode, setFixedCellHeight, setFixedCellWidth, setLayoutOrientation, setListData, setListData, setPrototypeCellValue, setSelectedIndex, setSelectedIndices, setSelectedValue, setSelectionBackground, setSelectionForeground, setSelectionInterval, setSelectionMode, setSelectionModel, setUI, setValueIsAdjusting, setVisibleRowCount
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, 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, 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
-
Field Details
-
_listCellRenderer
-
PROPERTY_CHECKBOX_ENABLED
- See Also:
-
PROPERTY_CLICK_IN_CHECKBOX_ONLY
- See Also:
-
_handler
-
ALL
Deprecated.replaced byALL_ENTRY
- See Also:
-
ALL_ENTRY
The default all entry for CheckBoxList.- Since:
- 3.4.1
-
-
Constructor Details
-
CheckBoxList
public CheckBoxList()Constructs aCheckBoxList
with an empty model. -
CheckBoxList
Constructs aCheckBoxList
that displays the elements in the specifiedVector
.- Parameters:
listData
- theVector
to be loaded into the data model
-
CheckBoxList
Constructs aCheckBoxList
that displays the elements in the specifiedObject[]
.- Parameters:
listData
- the array of Objects to be loaded into the data model
-
CheckBoxList
Constructs aCheckBoxList
that displays the elements in the specified, non-null
model. AllCheckBoxList
constructors delegate to this one.- Parameters:
dataModel
- the data model for this list- Throws:
IllegalArgumentException
- ifdataModel
isnull
-
-
Method Details
-
setModel
-
updateUI
public void updateUI() -
init
protected void init()Initialize the CheckBoxList. -
getLastVisibleIndex
public int getLastVisibleIndex()- Overrides:
getLastVisibleIndex
in classJList
-
createCheckBoxListSelectionModel
-
createCellRenderer
Creates the cell renderer.- Returns:
- the cell renderer.
-
createHandler
Creates the mouse listener and key listener used by CheckBoxList.- Returns:
- the Handler.
-
getCellRenderer
- Overrides:
getCellRenderer
in classJList
-
getActualCellRenderer
-
getNextMatch
- Overrides:
getNextMatch
in classJList
-
isCheckBoxEnabled
public boolean isCheckBoxEnabled(int index) Checks if check box is enabled. There is no setter for it. The only way is to override this method to return true or false.- Parameters:
index
- the row index.- Returns:
- true or false. If false, the check box on the particular row index will be disabled.
-
isCheckBoxVisible
public boolean isCheckBoxVisible(int index) Checks if check box is visible. There is no setter for it. The only way is to override this method to return true or false.- Parameters:
index
- whether the check box on the row index is visible.- Returns:
- true or false. If false, there is not check box on the particular row index. By default, we always return true. You override this method to return true of false depending on your need.
-
isCheckBoxEnabled
public boolean isCheckBoxEnabled()Gets the value of property checkBoxEnabled. If true, user can click on check boxes on each tree node to select and deselect. If false, user can't click but you as developer can programmatically call API to select/deselect it.- Returns:
- the value of property checkBoxEnabled.
-
setCheckBoxEnabled
public void setCheckBoxEnabled(boolean checkBoxEnabled) Sets the value of property checkBoxEnabled.- Parameters:
checkBoxEnabled
- true to allow to check the check box. False to disable it which means user can see whether a row is checked or not but they cannot change it.
-
isClickInCheckBoxOnly
public boolean isClickInCheckBoxOnly()Gets the value of property clickInCheckBoxOnly. When clickInCheckBoxOnly is false, clicking on anywhere of an row will do select the row and toggle check/uncheck. When clickInCheckBoxOnly is true, only click on checkbox will change check/uncheck status without affecting selected rows, and click on label will only select the row without affecting check/uncheck status.- Returns:
- the value of property clickInCheckBoxOnly.
-
setClickInCheckBoxOnly
public void setClickInCheckBoxOnly(boolean clickInCheckBoxOnly) Sets the value of property clickInCheckBoxOnly.- Parameters:
clickInCheckBoxOnly
- see for more information.
-
getCheckBoxListSelectionModel
Gets the ListSelectionModel that keeps the check boxes' state information for CheckBoxList.- Returns:
- the ListSelectionModel that keeps the check boxes' state information for CheckBoxList.
-
setCheckBoxListSelectionModel
-
getCheckBoxListSelectedIndices
public int[] getCheckBoxListSelectedIndices()Returns an array of all of the selected indices in increasing order.- Returns:
- all of the selected indices, in increasing order
- See Also:
-
setCheckBoxListSelectedIndex
public void setCheckBoxListSelectedIndex(int index) Selects a single cell and clear all other selections.- Parameters:
index
- the index of the one cell to select- See Also:
-
addCheckBoxListSelectedIndex
public void addCheckBoxListSelectedIndex(int index) Selects a single cell and keeps all previous selections.- Parameters:
index
- the index of the one cell to select- See Also:
-
removeCheckBoxListSelectedIndex
public void removeCheckBoxListSelectedIndex(int index) Deselects a single cell.- Parameters:
index
- the index of the one cell to select- See Also:
-
setCheckBoxListSelectedIndices
public void setCheckBoxListSelectedIndices(int[] indices) Selects a set of cells.- Parameters:
indices
- an array of the indices of the cells to select- See Also:
-
setSelectedObjects
Sets the selected elements.- Parameters:
elements
- sets the select elements. All the rows that have the value in the array will be checked.
-
setSelectedObjects
Sets the selected elements.- Parameters:
elements
- sets the select elements. All the rows that have the value in the Vector will be checked.
-
getCheckBoxListSelectedValues
Returns an array of the values for the selected cells. The returned values are sorted in increasing index order.- Returns:
- the selected values or an empty list if nothing is selected
- See Also:
-
getCheckBoxListSelectedIndex
public int getCheckBoxListSelectedIndex()Returns the first selected index; returns -1 if there is no selected item.- Returns:
- the value of
getMinSelectionIndex
- See Also:
-
getCheckBoxListSelectedValue
Returns the first selected value, ornull
if the selection is empty.- Returns:
- the first selected value
- See Also:
-
setCheckBoxListSelectedValue
Selects the specified object from the list and clear all other selections.- Parameters:
anObject
- the object to selectshouldScroll
- true if the list should scroll to display the selected object, if one exists; otherwise false
-
addCheckBoxListSelectedValue
Selects the specified object from the list and keep all previous selections.- Parameters:
anObject
- the object to be selectedshouldScroll
- true if the list should scroll to display the selected object, if one exists; otherwise false
-
addCheckBoxListSelectedValues
Selects the specified objects from the list and keep all previous selections.- Parameters:
objects
- the objects to be selected
-
removeCheckBoxListSelectedValues
Deselects the specified objects from the list and keep all previous selections.- Parameters:
objects
- the objects to be selected
-
removeCheckBoxListSelectedValue
Deselects the specified object from the list.- Parameters:
anObject
- the object to selectshouldScroll
- true if the list should scroll to display the selected object, if one exists; otherwise false
-
clearCheckBoxListSelection
public void clearCheckBoxListSelection() -
selectAll
public void selectAll()Selects all objects in this list. -
selectNone
public void selectNone()Deselects all objects in this list. -
getPreferredScrollableViewportSize
- Specified by:
getPreferredScrollableViewportSize
in interfaceScrollable
- Overrides:
getPreferredScrollableViewportSize
in classJList
-
ALL_ENTRY