public class CompoundFocusListener extends AbstractBean
F.i, client code which wants to get notified if focus enters/exits the hierarchy below panel would install the compound focus listener like:
// add some components inside
panel.add(new JTextField("something to .... focus"));
panel.add(new JXDatePicker(new Date()));
JComboBox combo = new JComboBox(new Object[] {"dooooooooo", 1, 2, 3, 4 });
combo.setEditable(true);
panel.add(new JButton("something else to ... focus"));
panel.add(combo);
panel.setBorder(new TitledBorder("has focus dispatcher"));
// register the compound dispatcher
CompoundFocusListener report = new CompoundFocusListener(panel);
PropertyChangeListener l = new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent evt) {
// do something useful here
}};
report.addPropertyChangeListener(l);
PENDING JW: change of current instance of KeyboardFocusManager?Constructor and Description |
---|
CompoundFocusListener(javax.swing.JComponent root)
Instantiates a CompoundFocusListener on the component hierarchy below the given
component.
|
Modifier and Type | Method and Description |
---|---|
boolean |
isFocused()
Return true if the root or any of its descendants is focused.
|
protected void |
permanentFocusOwnerChanged(java.awt.Component focusOwner)
Updates focused property depending on whether or not the given component
is below the root's hierarchy.
|
void |
release()
Releases all listeners and internal references.
|
addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, addVetoableChangeListener, clone, fireIndexedPropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, fireVetoableChange, getPropertyChangeListeners, getPropertyChangeListeners, getVetoableChangeListeners, getVetoableChangeListeners, hasPropertyChangeListeners, hasVetoableChangeListeners, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, removeVetoableChangeListener
public CompoundFocusListener(javax.swing.JComponent root)
root
- the root of a component hierarchyjava.lang.NullPointerException
- if the root is nullpublic boolean isFocused()
public void release()
Note: this instance must not be used after calling this method.
protected void permanentFocusOwnerChanged(java.awt.Component focusOwner)
Note: Does nothing if the component is null. This might not be entirely correct, but property change events from the focus manager come in pairs, with only one of the new/old value not-null.
focusOwner
- the component with is the current focusOwner.