Package com.jidesoft.swing
Class CheckBoxListWithSelectable
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JList
com.jidesoft.swing.CheckBoxListWithSelectable
- All Implemented Interfaces:
ImageObserver
,ItemSelectable
,MenuContainer
,Serializable
,Accessible
,Scrollable
CheckBoxListWithSelectable
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.
The element is ListModel should be an instance of Selectable
. If you have your own class that represents the
element in the list, you can implement Selectable
and implements a few very simple methods. If your
elements are already in an array or Vector that you pass in to the constructor of JList, we will convert them to
DefaultSelectable
which implements Selectable
interface.
To select an element, user can mouse click on the check box, or highlight the rows and press SPACE key to toggle the
selections.
To listen to the check box selection change, you can call addItemListener to add an ItemListener.
Please note, there are two implementations of CheckBoxList. CheckBoxListWithSelectable is one. There is also another
one call CheckBoxList. CheckBoxListWithSelectable is actually the old implementation. In 1.9.2, we introduced a new
implementation and renamed the old implementation to CheckBoxListWithSelectable. 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 CheckBoxList.getCheckBoxListSelectionModel()
. The old
implementation kept the selection state at Selectable object in the ListModel.- 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 CheckBoxListCellRenderer
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.CheckBoxListWithSelectable
(Object[] listData) Constructs aCheckBoxList
that displays the elements in the specifiedObject[]
.CheckBoxListWithSelectable
(Vector<?> listData) Constructs aCheckBoxList
that displays the elements in the specifiedVector
.CheckBoxListWithSelectable
(ListModel dataModel) Constructs aCheckBoxList
that displays the elements in the specified, non-null
model. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addItemListener
(ItemListener listener) Adds a listener to the list that's notified each time a change to the item selection occurs.protected CheckBoxListCellRenderer
Creates the cell renderer.protected CheckBoxListWithSelectable.Handler
Creates the mouse listener and key listener used by CheckBoxList.protected void
fireItemStateChanged
(ItemEvent event) Notifies all listeners that have registered interest for notification on this event type.Returns an array of all theItemListener
s added to this JList with addItemListener().int
getNextMatch
(String prefix, int startIndex, Position.Bias bias) Object[]
Gets the selected objects.protected void
init()
Initialize the CheckBoxList.boolean
Gets the value of property checkBoxEnabled.boolean
isCheckBoxVisible
(int index) Checks if check box is visible.boolean
Gets the value of property clickInCheckBoxOnly.void
removeItemListener
(ItemListener listener) Removes a listener from the list that's notified each time a change to the item selection occurs.void
Selects all objects in this list except those are disabled.void
Deselects all objects in this list except those are disabled.void
setCheckBoxEnabled
(boolean checkBoxEnabled) Sets the value of property checkBoxEnabled.void
setClickInCheckBoxOnly
(boolean clickInCheckBoxOnly) Sets the value of property clickInCheckBoxOnly.void
setListData
(Object[] listData) void
setListData
(Vector listData) void
setSelectedObjects
(Object[] elements) Sets the selected elements.void
setSelectedObjects
(Vector<?> objects) Sets the selected objects.Methods inherited from class javax.swing.JList
addListSelectionListener, addSelectionInterval, clearSelection, createSelectionModel, ensureIndexIsVisible, fireSelectionValueChanged, getAccessibleContext, getAnchorSelectionIndex, getCellBounds, getDragEnabled, getDropLocation, getDropMode, getFirstVisibleIndex, getFixedCellHeight, getFixedCellWidth, getLastVisibleIndex, getLayoutOrientation, getLeadSelectionIndex, getListSelectionListeners, getMaxSelectionIndex, getMinSelectionIndex, getModel, getPreferredScrollableViewportSize, 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, setModel, setPrototypeCellValue, setSelectedIndex, setSelectedIndices, setSelectedValue, setSelectionBackground, setSelectionForeground, setSelectionInterval, setSelectionMode, setSelectionModel, setUI, setValueIsAdjusting, setVisibleRowCount, 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, 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:
-
-
Constructor Details
-
CheckBoxListWithSelectable
public CheckBoxListWithSelectable()Constructs aCheckBoxList
with an empty model. -
CheckBoxListWithSelectable
Constructs aCheckBoxList
that displays the elements in the specifiedVector
. If the Vector contains elements which is not an instance ofSelectable
, it will wrap it automatically intoDefaultSelectable
and add to ListModel.- Parameters:
listData
- theVector
to be loaded into the data model
-
CheckBoxListWithSelectable
Constructs aCheckBoxList
that displays the elements in the specifiedObject[]
. If the Object array contains elements which is not an instance ofSelectable
, it will wrap it automatically intoDefaultSelectable
and add to ListModel.- Parameters:
listData
- the array of Objects to be loaded into the data model
-
CheckBoxListWithSelectable
Constructs aCheckBoxList
that displays the elements in the specified, non-null
model. AllCheckBoxList
constructors delegate to this one. Please note, if you are using this constructor, please make sure all elements in dataModel are instance ofSelectable
.- Parameters:
dataModel
- the data model for this list- Throws:
IllegalArgumentException
- ifdataModel
isnull
-
-
Method Details
-
init
protected void init()Initialize the CheckBoxList. -
createCellRenderer
Creates the cell renderer.- Returns:
- the cell renderer.
-
createHandler
Creates the mouse listener and key listener used by CheckBoxList.- Returns:
- the Handler.
-
setSelectedObjects
Sets the selected elements.- Parameters:
elements
- the elements to be selected
-
setSelectedObjects
Sets the selected objects.- Parameters:
objects
- the elements to be selected in a Vector.
-
getCellRenderer
- Overrides:
getCellRenderer
in classJList
-
getActualCellRenderer
-
isClickInCheckBoxOnly
public boolean isClickInCheckBoxOnly()Gets the value of property clickInCheckBoxOnly. 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 clickInCheckBoxOnly.
-
setClickInCheckBoxOnly
public void setClickInCheckBoxOnly(boolean clickInCheckBoxOnly) Sets the value of property clickInCheckBoxOnly.- Parameters:
clickInCheckBoxOnly
- 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.
-
addItemListener
Adds a listener to the list that's notified each time a change to the item selection occurs. Listeners added directly to theCheckBoxList
will have theirItemEvent.getSource() == this CheckBoxList
.- Specified by:
addItemListener
in interfaceItemSelectable
- Parameters:
listener
- theItemListener
to add
-
removeItemListener
Removes a listener from the list that's notified each time a change to the item selection occurs.- Specified by:
removeItemListener
in interfaceItemSelectable
- Parameters:
listener
- theItemListener
to remove
-
getItemListeners
Returns an array of all theItemListener
s added to this JList with addItemListener().- Returns:
- all of the
ItemListener
s added or an empty array if no listeners have been added - See Also:
-
fireItemStateChanged
Notifies all listeners that have registered interest for notification on this event type. The event instance is lazily created using theevent
parameter.- Parameters:
event
- theItemEvent
object- See Also:
-
getSelectedObjects
Gets the selected objects. This is different fromJList.getSelectedValues()
which is a JList's feature. The List returned from this method contains the objects that is checked in the CheckBoxList.- Specified by:
getSelectedObjects
in interfaceItemSelectable
- Returns:
- the selected objects.
-
selectAll
public void selectAll()Selects all objects in this list except those are disabled. -
selectNone
public void selectNone()Deselects all objects in this list except those are disabled. -
setListData
- Overrides:
setListData
in classJList
-
setListData
- Overrides:
setListData
in classJList
-
getNextMatch
- Overrides:
getNextMatch
in classJList
-
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.
-
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
- the row index.- Returns:
- true or false. If false, there is not check box on the particular row index.
-
setCheckBoxEnabled
public void setCheckBoxEnabled(boolean checkBoxEnabled) Sets the value of property checkBoxEnabled.- Parameters:
checkBoxEnabled
- true to enable all the check boxes. False to disable all of them.
-