/* File.......: MyComponentsAWT.java Author.....: Michael Thomas 03/17/99, ver 1.0 - 03/17/99 */ import java.applet.Applet; //needed for: extends Applet import java.awt.Graphics; import java.awt.Color; import java.awt.Frame; import java.awt.List; import java.awt.TextArea; import java.awt.Button; import java.awt.Label; import java.awt.TextField; import java.awt.Checkbox; import java.awt.Panel; import java.awt.CheckboxGroup; import java.awt.Choice; import java.awt.BorderLayout; import java.awt.GridLayout; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import java.awt.event.ItemListener; import java.awt.event.ItemEvent; import java.awt.event.TextListener; import java.awt.event.TextEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; //####################################################################### public class MyAWTComponents extends Applet { //####################################################################### TextArea txtareaMsg; //----------------------------------------------------------------------- public void init() { //----------------------------------------------------------------------- Panel p; setBackground( Color.white ); setLayout( new BorderLayout(5, 5) ); // (horizontal gap, verticle gap) //********************** // North Border //********************** Panel pNorth = new Panel( new GridLayout(2,1) ); p = new Panel(); p.add( new Label( "Very Basic Example of the AWT's Components & Events" ) ); pNorth.add( p ); // Grid 1, Centered because of panel. p = new Panel(); //default-FlowLayout Manager p.add( new Label("My Label") ); Button btnMyButton = new Button("My Button"); btnMyButton.addActionListener( new EventMyButton() ); p.add( btnMyButton ); p.add( new Label("Text:") ); TextField txtMyTextField = new TextField("My TextField. Type here!",20); txtMyTextField.addActionListener( new EventMyTextField() ); p.add( txtMyTextField ); p.add( new Label("Pswd:") ); TextField txtMyPassword = new TextField("",10); txtMyPassword.addActionListener( new EventMyTextField() ); txtMyPassword.setEchoChar('*'); p.add( txtMyPassword ); pNorth.add( p ); add(BorderLayout.NORTH, pNorth ); //********************** // South Border //********************** p = new Panel(); EventMyHobbies objEventMyHobbies = new EventMyHobbies(); Checkbox ckbkSports = new Checkbox("Sports"); ckbkSports.addItemListener( objEventMyHobbies ); //Example of sharing one ItemListener. Checkbox ckbkCooking = new Checkbox("Cooking"); ckbkCooking.addItemListener( objEventMyHobbies ); //Example of sharing one ItemListener. Checkbox ckbkReading = new Checkbox("Reading"); ckbkReading.addItemListener( objEventMyHobbies ); //Example of sharing one ItemListener. p.add( new Label("Hobbies: ") ); p.add( ckbkSports ); p.add( ckbkCooking ); p.add( ckbkReading ); p.add( new Label( " " ) ); //Used for Spacing. EventMyMarriageStatus objEventMyMarriageStatus = new EventMyMarriageStatus(); CheckboxGroup ckgrpMarried = new CheckboxGroup(); Checkbox ckbkMarried = new Checkbox("Married", ckgrpMarried, false); ckbkMarried.addItemListener( objEventMyMarriageStatus ); //Example of sharing one ItemListener. Checkbox ckbkSingle = new Checkbox("Single", ckgrpMarried, true); ckbkSingle.addItemListener( objEventMyMarriageStatus ); //Example of sharing one ItemListener. Checkbox ckbkWidowed = new Checkbox("Widowed", ckgrpMarried, false); ckbkWidowed.addItemListener( objEventMyMarriageStatus ); //Example of sharing one ItemListener. p.add( new Label("Marriage Status: ") ); p.add( ckbkMarried ); p.add( ckbkSingle ); p.add( ckbkWidowed ); add(BorderLayout.SOUTH, p ); //********************** // West Border //********************** EventMyCheckbox objEventMyCheckbox = new EventMyCheckbox(); Checkbox objCheckbox1 = new Checkbox("Checkbox 1"); objCheckbox1.addItemListener( objEventMyCheckbox ); //Example of sharing one ItemListener. Checkbox objCheckbox2 = new Checkbox("Checkbox 2"); objCheckbox2.addItemListener( objEventMyCheckbox ); //Example of sharing one ItemListener. Checkbox objCheckbox3 = new Checkbox("Checkbox 3"); objCheckbox3.addItemListener( objEventMyCheckbox ); //Example of sharing one ItemListener. p = new Panel(); p.setLayout( new GridLayout( 10, 1 ) ); p.add( new Label("** Checkbox **") ); p.add( objCheckbox1 ); p.add( objCheckbox2 ); p.add( objCheckbox3 ); EventMyRadio objEventMyRadio = new EventMyRadio(); CheckboxGroup ckgrpAge = new CheckboxGroup(); Checkbox objCheckboxRadio1 = new Checkbox("Radio 1 (w/Group)", ckgrpAge,false); objCheckboxRadio1.addItemListener( objEventMyRadio ); //Example of sharing one ItemListener. Checkbox objCheckboxRadio2 = new Checkbox("Radio 2 (w/Group)", ckgrpAge,true); objCheckboxRadio2.addItemListener( objEventMyRadio ); //Example of sharing one ItemListener. Checkbox objCheckboxRadio3 = new Checkbox("Radio 3 (w/Group)", ckgrpAge,false); objCheckboxRadio3.addItemListener( objEventMyRadio ); //Example of sharing one ItemListener. Checkbox objCheckboxRadio4 = new Checkbox("Radio 4 (w/Group)", ckgrpAge,false); objCheckboxRadio4.addItemListener( objEventMyRadio ); //Example of sharing one ItemListener. p.add( new Label("** Checkbox-Radio **") ); p.add( objCheckboxRadio1 ); p.add( objCheckboxRadio2 ); p.add( objCheckboxRadio3 ); p.add( objCheckboxRadio4 ); add("West", p ); //BorderLayout.WEST //********************** // East Border //********************** p = new Panel(); p.setLayout( new GridLayout( 3, 1 ) ); Choice choMy = new Choice(); choMy.add("Choice 1"); choMy.add("Choice 2"); choMy.add("Choice 3"); choMy.add("Choice 4"); choMy.addItemListener( new EventMyChoice() ); p.add( choMy ); add(BorderLayout.EAST, p ); //********************** // Center Border //********************** p = new Panel(); p.setLayout( new GridLayout( 4, 1 ) ); //List(# of rows, boolean-Can have multiple selections.) List myListMulti = new List(5, true); myListMulti.addItem("Multi Choice 1"); myListMulti.addItem("Multi Choice 2"); myListMulti.addItem("Multi Choice 3"); myListMulti.addItem("Multi Choice 4"); myListMulti.addItem("Multi Choice 5"); myListMulti.addActionListener ( new EventMyMultiSelect() ); myListMulti.addItemListener ( new EventMyMultiSelect() ); p.add( myListMulti ); List myListSingle = new List(5, false); myListSingle.addItem("Single Choice 1"); myListSingle.addItem("Single Choice 2"); myListSingle.addItem("Single Choice 3"); myListSingle.addItem("Single Choice 4"); myListSingle.addItem("Single Choice 5"); myListSingle.addActionListener ( new EventMySingleSelect() ); myListSingle.addItemListener ( new EventMySingleSelect() ); p.add( myListSingle ); TextArea objTextArea = new TextArea("My TextArea. Select here and type.", 5, 50); objTextArea.addTextListener( new EventMyTextArea() ); p.add( objTextArea ); txtareaMsg = new TextArea("Messages from events will go here!", 5, 50); p.add(txtareaMsg); add(BorderLayout.CENTER, p ); } //----------------------------------------------------------------------- public void paint(Graphics g) { //----------------------------------------------------------------------- setBackground( Color.white ); } //paint() //----------------------------------------------------------------------- public static void main( String args [] ) { //----------------------------------------------------------------------- Frame app = new Frame( "Application - MyComponentsAWT" ); app.setSize( 640, 480); //set Frame: width, height app.addWindowListener( //Register an anonymous class as a listener. new WindowAdapter() { public void windowClosing( WindowEvent e ) { System.exit( 0 ); } } ); final MyAWTComponents applet = new MyAWTComponents(); //create the applet. applet.init(); //initialize applet. applet.start(); //start applet. app.add( applet, BorderLayout.CENTER ); //add applet to center of frame. app.setVisible( true ); //Make frame visible. } //main() //############################################################################## class EventMyButton implements ActionListener { //############################################################################## //----------------------------------------------------------------------------- public void actionPerformed ( ActionEvent e ){ //----------------------------------------------------------------------------- Button objButton = (Button) e.getSource(); txtareaMsg.setText( "Pressed MyButton" + "\n" + "Action Command = " + "|" + e.getActionCommand() + "|" + "\n" + "paramString() = " + e.paramString() + "\n" + "getLabel() = " + objButton.getLabel()); } } //eoc (inner) //############################################################################## class EventMyTextField implements ActionListener { //############################################################################## //----------------------------------------------------------------------------- public void actionPerformed ( ActionEvent e ){ //----------------------------------------------------------------------------- TextField objTextField = (TextField) e.getSource(); txtareaMsg.setText( "Pressed enter key in MyTextField" + "\n" + "Action Command = " + "|" + e.getActionCommand() + "|" + "\n" + "paramString() = " + e.paramString() + "\n" + "getText() = " + objTextField.getText()); } } //eoc (inner) //############################################################################## class EventMyCheckbox implements ItemListener { //############################################################################## //----------------------------------------------------------------------------- public void itemStateChanged(ItemEvent e) { //----------------------------------------------------------------------------- //Object [] aobjObject = e.getItemSelectable().getSelectedObjects(); //if ( aobjObject.length >= 1 ) { // System.out.println( "getSelectedObjects row 0's data type = " + aobjObject[0].getClass().getName() ); // } //Start: Debuging to figure out what getItem() is returning. Object objObject = e.getItem(); System.out.println( "Is instanceof Checkbox: " + (objObject instanceof Checkbox) ); System.out.println( "getItem() = " + objObject.getClass().getName() ); //Stop: String strItem = (String) objObject; txtareaMsg.setText( "Checked a Checkbox: " + strItem + "\n" + "getStateChange() = " + "|" + e.getStateChange() + "|" + "\n" + "paramString() = " + e.paramString() + "\n" ); } } //eoc (inner) //############################################################################## class EventMyRadio implements ItemListener { //############################################################################## //----------------------------------------------------------------------------- public void itemStateChanged(ItemEvent e) { //----------------------------------------------------------------------------- //Start: Debuging to figure out what getItem() is returning. Object objObject = e.getItem(); System.out.println( "Is instanceof Checkbox: " + (objObject instanceof Checkbox) ); System.out.println( "getItem() = " + objObject.getClass().getName() ); //Stop: String strItem = (String) objObject; txtareaMsg.setText( "Checked a Checkbox: " + strItem + "\n" + "getStateChange() = " + "|" + e.getStateChange() + "|" + "\n" + "paramString() = " + e.paramString() + "\n" ); } } //eoc (inner) //############################################################################## class EventMyMultiSelect implements ActionListener, ItemListener { //############################################################################## //----------------------------------------------------------------------------- public void actionPerformed ( ActionEvent e ){ //----------------------------------------------------------------------------- Object objObject = e.getSource(); System.out.println( "getSource() = " + objObject.getClass().getName() ); List objList = (List) e.getSource(); String [] astrItems = objList.getSelectedItems(); String strItemList = ""; for ( int x=0; x < astrItems.length; x++ ) { strItemList += astrItems[x]+","; //Create a list of items choosen. } txtareaMsg.setText( "Double clicked (list): " + strItemList + "\n" + "Action Command = " + "|" + e.getActionCommand() + "|" + "\n" + "paramString() = " + e.paramString() + "\n" ); } //----------------------------------------------------------------------------- public void itemStateChanged(ItemEvent e) { //----------------------------------------------------------------------------- //Start: Debuging to figure out what getItem() is returning. Object objObject = e.getItem(); System.out.println( "getItem() = " + objObject.getClass().getName() ); //Stop: Integer objIntegerItem = (Integer) objObject; String strItem = objIntegerItem.toString(); txtareaMsg.setText( "Single clicked: " + strItem + "\n" + "getStateChange() = " + "|" + e.getStateChange() + "|" + "\n" + "paramString() = " + e.paramString() + "\n" ); } } //eoc (inner) //############################################################################## class EventMySingleSelect implements ActionListener, ItemListener { //############################################################################## //----------------------------------------------------------------------------- public void actionPerformed ( ActionEvent e ){ //----------------------------------------------------------------------------- Object objObject = e.getSource(); System.out.println( "getSource() = " + objObject.getClass().getName() ); List objList = (List) e.getSource(); String [] astrItems = objList.getSelectedItems(); String strItemList = ""; for ( int x=0; x < astrItems.length; x++ ) { strItemList += astrItems[x]+","; //Create a list of items choosen. } txtareaMsg.setText( "Double clicked (list): " + strItemList + "\n" + "Action Command = " + "|" + e.getActionCommand() + "|" + "\n" + "paramString() = " + e.paramString() + "\n" ); } //----------------------------------------------------------------------------- public void itemStateChanged(ItemEvent e) { //----------------------------------------------------------------------------- //Start: Debuging to figure out what getItem() is returning. Object objObject = e.getItem(); System.out.println( "getItem() = " + objObject.getClass().getName() ); //Stop: Integer objIntegerItem = (Integer) objObject; String strItem = objIntegerItem.toString(); txtareaMsg.setText( "Single Clicked: " + strItem + "\n" + "getStateChange() = " + "|" + e.getStateChange() + "|" + "\n" + "paramString() = " + e.paramString() + "\n" ); } } //eoc (inner) //############################################################################## class EventMyTextArea implements TextListener { //############################################################################## //----------------------------------------------------------------------------- public void textValueChanged(TextEvent e) { //----------------------------------------------------------------------------- //Start: Debuging to figure out what getItem() is returning. Object objObject = e.getSource(); System.out.println( "getSource() = " + objObject.getClass().getName() ); //Stop: TextArea objTextArea = (TextArea) e.getSource(); txtareaMsg.setText( "Changed TextArea for : " + objTextArea.getName() + "\n" + "Length of text = " +objTextArea.getText().length() + "\n" + "paramString() = " + e.paramString() + "\n" + "Text = " + objTextArea.getText() ); } }//inner eoc //############################################################################## class EventMyChoice implements ItemListener { //############################################################################## //----------------------------------------------------------------------------- public void itemStateChanged(ItemEvent e) { //----------------------------------------------------------------------------- //Start: Debuging to figure out what getItem() is returning. Object objObject = e.getItem(); System.out.println( "Is instanceof Checkbox: " + (objObject instanceof Checkbox) ); System.out.println( "getItem() = " + objObject.getClass().getName() ); //Stop: String strItem = (String) objObject; txtareaMsg.setText( "Checked a Checkbox: " + strItem + "\n" + "getStateChange() = " + "|" + e.getStateChange() + "|" + "\n" + "paramString() = " + e.paramString() + "\n" ); } } //eoc (inner) //############################################################################## class EventMyHobbies implements ItemListener { //############################################################################## //----------------------------------------------------------------------------- public void itemStateChanged(ItemEvent e) { //----------------------------------------------------------------------------- //Object [] aobjObject = e.getItemSelectable().getSelectedObjects(); //if ( aobjObject.length >= 1 ) { // System.out.println( "getSelectedObjects row 0's data type = " + aobjObject[0].getClass().getName() ); // } //Start: Debuging to figure out what getItem() is returning. Object objObject = e.getItem(); System.out.println( "Is instanceof Checkbox: " + (objObject instanceof Checkbox) ); System.out.println( "getItem() = " + objObject.getClass().getName() ); //Stop: String strItem = (String) objObject; txtareaMsg.setText( "Checked a Checkbox: " + strItem + "\n" + "getStateChange() = " + "|" + e.getStateChange() + "|" + "\n" + "paramString() = " + e.paramString() + "\n" ); } } //eoc (inner) //############################################################################## class EventMyMarriageStatus implements ItemListener { //############################################################################## //----------------------------------------------------------------------------- public void itemStateChanged(ItemEvent e) { //----------------------------------------------------------------------------- //Start: Debuging to figure out what getItem() is returning. Object objObject = e.getItem(); System.out.println( "Is instanceof Checkbox: " + (objObject instanceof Checkbox) ); System.out.println( "getItem() = " + objObject.getClass().getName() ); //Stop: String strItem = (String) objObject; txtareaMsg.setText( "Checked a Checkbox: " + strItem + "\n" + "getStateChange() = " + "|" + e.getStateChange() + "|" + "\n" + "paramString() = " + e.paramString() + "\n" ); } } //eoc (inner) } //eoc //eof