Tutorials : Step by Step :
Chapter 2 :

Contents
Event Listeners
The ActionListener
The MouseListener
The MouseMotionListener

Chapter 2 - Event Listeners

1. The ActionListener

/* Now you will be able to perform actions when a button is clicked
to get and place text in/out of a textfield and to get the state of checkboxes.
This example will only let the button do actions.
*/

import java.awt.*;
import java.applet.*;
// import an extra class for the ActionListener
import java.awt.event.*;

// Tells the applet you will be using the ActionListener methods.

public class ActionExample extends Applet implements ActionListener
{

     Button okButton;
     Button wrongButton;
     TextField nameField;
     CheckboxGroup radioGroup;
     Checkbox radio1;
     Checkbox radio2;
     Checkbox radio3;

     public void init() 
     {
  // Now we will use the FlowLayout
          setLayout(new FlowLayout());
          okButton = new Button("Action!");
          wrongButton = new Button("Don't click!");
          nameField = new TextField("Type here Something",35);
          radioGroup = new CheckboxGroup();
          radio1 = new Checkbox("Red", radioGroup,false);
          radio2 = new Checkbox("Blue", radioGroup,true);
          radio3 = new Checkbox("Green", radioGroup,false);
          add(okButton);
          add(wrongButton);
          add(nameField);
          add(radio1);
          add(radio2);
          add(radio3);

  // Attach actions to the components
          okButton.addActionListener(this);
          wrongButton.addActionListener(this);
         }

 // Here we will show the results of our actions
         public void paint(Graphics g)
         {
  // If the radio1 box is selected then radio1.getState() will
  // return true and this will execute
          if (radio1.getState()) g.setColor(Color.red);
  // If it was not red we'll try if it is blue
        else if (radio2.getState()) g.setColor(Color.blue);
  // Since always one radiobutton must be selected it must be green
          else g.setColor(Color.green);

  // Now that the color is set you can get the text out of the TextField
  // like this
          g.drawString(nameField.getText(),20,100);
     }

 // When the button is clicked this method will get automatically called
 // This is where you specify all actions.

        public void actionPerformed(ActionEvent evt) 
         {
  // Here we will ask what component called this method
              if (evt.getSource() == okButton) 
   // So it was the okButton, then let's perform his actions
   // Let the applet perform Paint again.
   // That will cause the applet to get the text out of the textField
   // again and show it.
                   repaint();

  // Actions of the wrongButton
          else if (evt.getSource() == wrongButton) 
          {

   // Change the text on the button for fun
               wrongButton.setLabel("Not here!");
   // Changes the text in the TextField
               nameField.setText("That was the wrong button!");
   // Lets the applet show that message.
               repaint();
          }
     } 

}
 

// That gives you an idea of how to implement actions.
// Note that clicking the radiobuttons only shows it's effect when the
// applet is repainted. That is because no ActionListener is added
// to the radio buttons. You can do that in the same way as the buttons.

// Next example is about MouseListener, a way to let the user interact with mouse-clicks.

// Go to MouseClickExample.java

How to Add Java Applets to Your Site

New on the Java Boutique:

New Review:

Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling API boasts simplicity, ease-of-integration, a well-rounded feature set, and it's free!

New Applet:

Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA sequences into three useful formats.

Elsewhere on internet.com:

WebDeveloper Java
Lots of Java information on webdeveloper.com

WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.

ScriptSearch Java
Hundreds of free Java code files to download.

jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.