(moved from event-driven language)

While Java 2 (JDK versions 1.2 and 1.3) is an object-oriented language, the event model was changed (after Java 1.0) to follow an event-driven model.

Basically how it works is that within the program code, you create an object that can receive an event -- almost any GUI-related object can receive events (buttons, windows, text fields, etc.). Once the object is created, you create what's called a listener object -- an object containing certain methods that are called at the appropriate time. See event listener for more information on event listeners in Java 2, once I put a writeup there.

Once the listener object is created, you associate it with the object that will receive the events. This is done by calling the appropriate method on the object and giving it the listener object as an explicit argument. For example:

JButton button = new JButton("Foo"); // creates a button with the text "Foo"
SomeListenerClass listener = new SomeListenerClass(); // Create the listener object
button.addActionListener(listener); // Adds the listener to the button

So, the event listener has been added. What now?

Well, as detailed in event listener, there are different types of listeners, depending on exactly what you want to listen for. Above we used the listener as an ActionListener, which is sort of a basic listener class that'll get called when any of a number of different events occur (clicking, hitting 'enter' while the control (in this case button) is selected, etc.). When one of the listened-for events occurs, the appropriate method on the listener object is called, and thus the code in it is executed. (Again, this is gone over in more detail in event listener, or will be when I write it.)

I gather the event model in Java 1 and 1.1 was different; however, I'm not familiar with the differences between Java 1 and 2, so I'll leave that for someone more qualified to node about.
Update 2000/12/15: yerricde just pointed out to me that the Java 1.1 AWT (Abstract Windowing Toolkit -- the most basic GUI packages for Java, and by extension the rest of the GUI packages, like Swing) also uses an event-based model, but Java 1.0 does not. Thanks, yerricde!

Log in or register to write something here or to contact authors.