ItemEventComponent.java Source code

Java tutorial

Introduction

Here is the source code for ItemEventComponent.java

Source

// 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();
    }
}