Java tutorial
// This example is from the book _Java AWT Reference_ by John Zukowski. // Written by John Zukowski. Copyright (c) 1997 O'Reilly & Associates. // You may study, use, modify, and distribute this example for any purpose. // This example is provided WITHOUT WARRANTY either expressed or import java.awt.AWTEvent; import java.awt.AWTEventMulticaster; import java.awt.Component; import java.awt.Frame; import java.awt.ItemSelectable; import java.awt.SystemColor; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.awt.event.MouseEvent; class ItemEventComponent extends Component implements ItemSelectable { boolean selected; int i = 0; ItemListener itemListener = null; ItemEventComponent() { enableEvents(AWTEvent.MOUSE_EVENT_MASK); } public Object[] getSelectedObjects() { Object o[] = new Object[1]; o[0] = new Integer(i); return o; } public void addItemListener(ItemListener l) { itemListener = AWTEventMulticaster.add(itemListener, l); } public void removeItemListener(ItemListener l) { itemListener = AWTEventMulticaster.remove(itemListener, l); } public void processEvent(AWTEvent e) { if (e.getID() == MouseEvent.MOUSE_PRESSED) { if (itemListener != null) { selected = !selected; i++; itemListener.itemStateChanged(new ItemEvent(this, ItemEvent.ITEM_STATE_CHANGED, getSelectedObjects(), (selected ? ItemEvent.SELECTED : ItemEvent.DESELECTED))); } } } } public class MainClass extends Frame implements ItemListener { MainClass() { super("Listening In"); ItemEventComponent c = new ItemEventComponent(); add(c, "Center"); c.addItemListener(this); c.setBackground(SystemColor.control); setSize(200, 200); } public void itemStateChanged(ItemEvent e) { Object[] o = e.getItemSelectable().getSelectedObjects(); Integer i = (Integer) o[0]; System.out.println(i); } public static void main(String args[]) { MainClass f = new MainClass(); f.show(); } }