import java.awt.Checkbox;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Panel;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class TouchTest2 extends Frame implements ItemListener {
    TextField tf;
    Checkbox cb1;
    Checkbox cb2;
    Checkbox cb3;
    TextArea ta;
    Checkbox ccb1;
    Checkbox ccb2;
    Checkbox ccb3;

    public TouchTest2() {
        super("Test Frame");
        addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                dispose();
            }
        });

        Panel p = new Panel(new GridLayout(2, 2));
        tf = new TextField("text field");
        cb1 = new Checkbox("Disable");
        cb2 = new Checkbox("Non-editable");
        cb3 = new Checkbox("Non-Focusable");
        cb1.addItemListener(this);
        cb2.addItemListener(this);
        cb3.addItemListener(this);
        p.add(tf);
        p.add(cb1);
        p.add(cb2);
        p.add(cb3);

        ta = new TextArea("text area");
        ccb1 = new Checkbox("Disable");
        ccb2 = new Checkbox("Non-editable");
        ccb3 = new Checkbox("Non-Focusable");
        ccb1.addItemListener(this);
        ccb2.addItemListener(this);
        ccb3.addItemListener(this);
        p.add(ta);
        p.add(ccb1);
        p.add(ccb2);
        p.add(ccb3);

        add(p);
        setSize(800, 400);
        setVisible(true);
    }

    public void itemStateChanged(ItemEvent ie) {
        Checkbox box = (Checkbox) ie.getSource();
        if (ie.getStateChange() == ItemEvent.SELECTED && box.equals(cb1)) {
            tf.setEnabled(false);
        } else if (ie.getStateChange() == ItemEvent.DESELECTED && box.equals(cb1)) {
            tf.setEnabled(true);
        }

        if (ie.getStateChange() == ItemEvent.SELECTED && box.equals(ccb1)) {
            ta.setEnabled(false);
        } else if (ie.getStateChange() == ItemEvent.DESELECTED && box.equals(ccb1)) {
            ta.setEnabled(true);
        }

        if (ie.getStateChange() == ItemEvent.SELECTED && box.equals(cb2)) {
            tf.setEditable(false);
        } else if (ie.getStateChange() == ItemEvent.DESELECTED && box.equals(cb2)) {
            tf.setEditable(true);
        }

        if (ie.getStateChange() == ItemEvent.SELECTED && box.equals(ccb2)) {
            ta.setEditable(false);
        } else if (ie.getStateChange() == ItemEvent.DESELECTED && box.equals(ccb2)) {
            ta.setEditable(true);
        }

        if (ie.getStateChange() == ItemEvent.SELECTED && box.equals(cb3)) {
            tf.setFocusable(false);
        } else if (ie.getStateChange() == ItemEvent.DESELECTED && box.equals(cb3)) {
            tf.setFocusable(true);
        }

        if (ie.getStateChange() == ItemEvent.SELECTED && box.equals(ccb3)) {
            ta.setFocusable(false);
        } else if (ie.getStateChange() == ItemEvent.DESELECTED && box.equals(ccb3)) {
            ta.setFocusable(true);
        }
    }

    public static void main(String args[]) {
        TouchTest2 test = new TouchTest2();
    }
}
