Java by API/java.awt/ItemSelectable
implements ItemSelectable
<source lang="java">
import java.awt.ItemSelectable; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import javax.swing.JFrame; import javax.swing.JTextField; import javax.swing.event.EventListenerList; public class Main {
public static void main(String[] argv) throws Exception { MyComponent component = new MyComponent(); JFrame f = new JFrame(); f.add(component); f.setSize(300, 300); f.setVisible(true); }
} class MyComponent extends JTextField implements ItemSelectable {
protected EventListenerList listenerList = new EventListenerList(); public Object[] getSelectedObjects() { return new String[] { "a", "b", "c" }; } public void addItemListener(ItemListener l) { listenerList.add(ItemListener.class, l); } public void removeItemListener(ItemListener l) { listenerList.remove(ItemListener.class, l); } void fireItemEvent(Object item, boolean sel) { ItemEvent evt = new ItemEvent(this, ItemEvent.ITEM_STATE_CHANGED, item, sel ? ItemEvent.SELECTED : ItemEvent.DESELECTED); Object[] listeners = listenerList.getListenerList(); for (int i = 0; i < listeners.length - 2; i += 2) { if (listeners[i] == ItemListener.class) { ((ItemListener) listeners[i + 1]).itemStateChanged(evt); } } }
}
</source>
ItemSelectable: getSelectedObjects()
<source lang="java">
import java.awt.BorderLayout; import java.awt.ItemSelectable; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import javax.swing.JComboBox; import javax.swing.JFrame; public class MainClass {
public static void main(final String args[]) { final String labels[] = { "A", "B", "C", "D", "E" }; JFrame frame = new JFrame("Selecting JComboBox"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JComboBox comboBox = new JComboBox(labels); frame.add(comboBox, BorderLayout.SOUTH); ItemListener itemListener = new ItemListener() { public void itemStateChanged(ItemEvent itemEvent) { int state = itemEvent.getStateChange(); String stateString = ((state == ItemEvent.SELECTED) ? "Selected" : "Deselected"); System.out.println("Item: " + itemEvent.getItem()); System.out.println(", State: " + stateString); ItemSelectable is = itemEvent.getItemSelectable(); System.out.println(", Selected: " + selectedString(is)); } }; comboBox.addItemListener(itemListener); frame.setSize(400, 200); frame.setVisible(true); } static private String selectedString(ItemSelectable is) { Object selected[] = is.getSelectedObjects(); return ((selected.length == 0) ? "null" : (String)selected[0]); }
}
</source>