JComboBox – Events


Action Fired

jComboBox1.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent evt) {
        System.out.println("Action Command: " + evt.getActionCommand());
        System.out.println("Modifier Keys");
        System.out.println("    SHIFT: " + ((evt.getModifiers()& ActionEvent.SHIFT_MASK)>0));
        System.out.println("     CTRL: " + ((evt.getModifiers()& ActionEvent.CTRL_MASK)>0));
        System.out.println("     META: " + ((evt.getModifiers()& ActionEvent.META_MASK)>0));
        System.out.println("      ALT: " + ((evt.getModifiers()& ActionEvent.ALT_MASK)>0));
        System.out.println("Timestamp of when this occured: " + (new Date(evt.getWhen())));
    }
});

Item Selection Changed

jComboBox1.addItemListener(new ItemListener() {
    @Override
    public void itemStateChanged(ItemEvent evt) {
        System.out.println("Item: " + evt.getPropertyName());
        
        String stateString = "unknown";
        if(state == ItemEvent.SELECTED){
            stateString = "SELECTED";
        }else if(state == ItemEvent.DESELECTED){
            stateString = "DESELECTED";
        }
        
        System.out.println("State Change: " + stateString);
    }
});

Popup Menu will become Visible

jComboBox1.addPopupMenuListener(new PopupMenuListener() {
    @Override
    public void popupMenuWillBecomeVisible(PopupMenuEvent evt) {
        System.out.println("Source (hash): " + evt.getSource().getClass().getSimpleName() + "(" + evt.getSource().hashCode() + ")");
    }
    @Override
    public void popupMenuWillBecomeInvisible(PopupMenuEvent evt) {
    }
    @Override
    public void popupMenuCanceled(PopupMenuEvent evt) {
    }
});

Popup Menu will become Invisible

jComboBox1.addPopupMenuListener(new PopupMenuListener() {
    @Override
    public void popupMenuWillBecomeVisible(PopupMenuEvent evt) {
    }
    @Override
    public void popupMenuWillBecomeInvisible(PopupMenuEvent evt) {
        System.out.println("Source (hash): " + evt.getSource().getClass().getSimpleName() + "(" + evt.getSource().hashCode() + ")");
    }
    @Override
    public void popupMenuCanceled(PopupMenuEvent evt) {
    }
});

Popup Menu is Canceled

jComboBox1.addPopupMenuListener(new PopupMenuListener() {
    @Override
    public void popupMenuWillBecomeVisible(PopupMenuEvent evt) {
    }
    @Override
    public void popupMenuWillBecomeInvisible(PopupMenuEvent evt) {
    }
    @Override
    public void popupMenuCanceled(PopupMenuEvent evt) {
        System.out.println("Source (hash): " + evt.getSource().getClass().getSimpleName() + "(" + evt.getSource().hashCode() + ")");
    }
});

List Interval Added

jComboBox1.addListDataListener(new ListDataListener() {
    @Override
    public void intervalAdded(ListDataEvent evt) {
        System.out.println("Type: " + evt.getType());
        System.out.println("Lower Index: " + evt.getIndex0());
        System.out.println("Upper Index: " + evt.getIndex1());
    }
    @Override
    public void intervalRemoved(ListDataEvent evt) {
    }
    @Override
    public void contentsChanged(ListDataEvent evt) {
    }
});
Type Values:
    ListDataEvent.CONTENTS_CHANGED = 0
    ListDataEvent.INTERVAL_ADDED = 1
    ListDataEvent.INTERVAL_REMOVED = 2

List Interval Removed

jComboBox1.getModel().addListDataListener(new ListDataListener() {
    @Override
    public void intervalAdded(ListDataEvent evt) {
    }
    @Override
    public void intervalRemoved(ListDataEvent evt) {
        System.out.println("Type: " + evt.getType());
        System.out.println("Lower Index: " + evt.getIndex0());
        System.out.println("Upper Index: " + evt.getIndex1());
    }
    @Override
    public void contentsChanged(ListDataEvent evt) {
    }
});
Type Values:
    ListDataEvent.CONTENTS_CHANGED = 0
    ListDataEvent.INTERVAL_ADDED = 1
    ListDataEvent.INTERVAL_REMOVED = 2

List Contents Changed

jComboBox1.getModel().addListDataListener(new ListDataListener() {
    @Override
    public void intervalAdded(ListDataEvent evt) {
    }
    @Override
    public void intervalRemoved(ListDataEvent evt) {
    }
    @Override
    public void contentsChanged(ListDataEvent evt) {
        System.out.println("Type: " + evt.getType());
        System.out.println("Lower Index: " + evt.getIndex0());
        System.out.println("Upper Index: " + evt.getIndex1());
    }
});
Type Values:
    ListDataEvent.CONTENTS_CHANGED = 0
    ListDataEvent.INTERVAL_ADDED = 1
    ListDataEvent.INTERVAL_REMOVED = 2

Editor Action Fired

jComboBox1.getEditor().addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent evt) {
        System.out.println("Action Command: " + evt.getActionCommand());
        System.out.println("Modifier Keys");
        System.out.println("    SHIFT: " + ((evt.getModifiers()& ActionEvent.SHIFT_MASK)>0));
        System.out.println("     CTRL: " + ((evt.getModifiers()& ActionEvent.CTRL_MASK)>0));
        System.out.println("     META: " + ((evt.getModifiers()& ActionEvent.META_MASK)>0));
        System.out.println("      ALT: " + ((evt.getModifiers()& ActionEvent.ALT_MASK)>0));
        System.out.println("Timestamp of when this occured: " + (new Date(evt.getWhen())));
    }
});

Light Weight Popup Flag Changed

jComboBox1.addPropertyChangeListener(new PropertyChangeListener() {
    @Override
    public void propertyChange(PropertyChangeEvent evt) {
        if (evt.getPropertyName().compareTo("lightWeightPopupEnabled") == 0) {
            System.out.println("New \"Light Weight Popup Enabled\" Value: " + evt.getNewValue());
            System.out.println("Old \"Light Weight Popup Enabled\" Value: " + evt.getOldValue());
        }
    }
});

Width changed due to Prototype Display Value Changed

jComboBox1.addPropertyChangeListener(new PropertyChangeListener() {
    @Override
    public void propertyChange(PropertyChangeEvent evt) {
        if (evt.getPropertyName().compareTo("prototypeDisplayValue") == 0) {
            System.out.println("New \"Prototype Display\" Value: " + evt.getNewValue());
            System.out.println("Old \"Prototype Display\" Value: " + evt.getOldValue());
        }
    }
});

Action Changed

jComboBox1.addPropertyChangeListener(new PropertyChangeListener() {
    @Override
    public void propertyChange(PropertyChangeEvent evt) {
        if (evt.getPropertyName().compareTo("action") == 0) {
            System.out.println("New \"Action\" Value: " + evt.getNewValue());
            System.out.println("Old \"Action\" Value: " + evt.getOldValue());
        }
    }
});