Java provides us with adapter classes that implement the corresponding listener interfaces containing one or more methods. The methods in these classes are empty. The Listener class that you define can extend the Adapter class and override the methods that you need. The adapter class used for WindowListener interface is the WindowAdapter class.
So you can simplify the above code (example 2) using Adapter class in the following manner :
//Example : Save as MyFrames.java and complie. import java.awt.*; import java.awt.event.*; Class MyFrames extends frame { public static void main(String arg[]) { MyFrames f = new MyFrames(); } //constructor of the Frame derived class public MyFrames { //Register the Listener for the window super(“The Window Adapter Sample”); MyWindowListener mlisten = new MyWindowListener(); addWindowListener(mlisten); setVisible(true); } } Class MyWindowListener extends WindowAdapter { //event handler for windows closing event public void windowClosing(WindowEvent we) { MyFrames f; f = (MyFrames)we.getSource(); f.dispose(); System.exit(0); } }
The Following is a list of Adapter classes and Listener Interfaces In Java :
Event Category | Interface Name | Adapter Name | Method |
---|---|---|---|
Window | Window Listener | Window Adapter | Void windowClosing (WindowEvent e) |
Void windowOpened (WindowEvent e) | |||
Void windowActivated (WindowEvent e) | |||
Void windowDeactivated (WindowEvent e) | |||
Void windowClosed (WindowEvent e) | |||
Void windowIconified (WindowEvent e) | |||
Void windowDeiconified (WindowEvent e) | |||
Action | ActionListener | Void actionPerformed (ActionEvent e) | |
Item | ItemListener | Void itemStateChanged (ItemEvent e) | |
Mouse Motion | MouseMotion Listener | MouseMotion Adapter | Mouse Motion MouseMotion Listener MouseMotion |
Void mouseMoved (MouseEvent e) | |||
Mouse Button | MouseListener | MouseAdapter | Void mousePressed (MouseEvent e) |
Void mouseReleased (MouseEvent e) | |||
Void mouseEntered (MouseEvent e) | |||
Void mouseClicked (MouseEvent e) | |||
Void mouseExited (MouseEvent e) | |||
Key | KeyListener | KeyAdapter | Void keyPressed (KeyEvent e) |
Focus | FocusListener | Void focusGained (FocusEvent e) | |
Void focusLost (FocusEvent e) | |||
Component | ComponentListener | Component Adapter | Void componentMoved (ComponentEvent e) |
Void componentResized (ComponentEvent e) | |||
Void componentHidden (ComponentEvent e) | |||
Void componentShown (ComponentEvent e) |
{mospagebreak title=Dissecting Java As Far As Inner Classes}
Inner Classes :
Inner classes are classes that are declared within other classes. They are also knows as nested classes and provide additional clarity to the program. The scope of the inner class is limited to the class that encloses it. The object of the inner class can access the members of the outer class. While the outer class can access the members of the inner class through an object of the inner class.
//Syntax : class { class {} //other attributes and methods }
//Example : Save as MyFrame.java then compile and excute the program. import java.awt.*; import java.awt.event.*; Class MyFrame extends Frame { //inner class declaration class MyWindowListener extends MyAdapter { //event handler for windows closing event public void windowClosing(WindowEvent w) { MyFrame frm; frm = (MyFrames)w.getSource(); frm.dispose(); System.exit(0); } public static void main(String arg[]) { MyFrame frm = new MyFrame(); } //constructor of the Frame class public MyFrames { //Register the Listener for the window super(“Illustration For Inner or Nested Classes”); //creating an object of inner class MyWindowListener wlisten = new MyWindowListener(); addWindowListener(wlisten); setVisible(true); setSize(100,100); } }
The above example code declares an object of the inner class in the constructor of an outer class. To create an object of the inner class from an unrelated class, you can use the new operator as if it were a member of the outer class.
//Example : MyFrame frame = new MyFrame(“Title”); Frame.MyWindowsListener listen = new MyFrame().MyWindowListener();
You can create a class inside a method. The methods of the inner class can have access to the variables define in the method containing them. Inner class must be declared after the declaration of the variables of the method so those variables are accessible to the inner class.
Example : Save As RadioTest.java, Compile And View Using Appletviewer
In this Applet example we examine MouseAdapters, and its methods like mouseClicked(). Plus ItemListener interface implementation and itemStateChanged() method and use getItem()method to display the item the user as selected in the Applet’s status bar using the showStatus()method. We will use interface components like checkbox, which are of two types-exclusive checkboxes (which means only one among the group can be selected) also called Radio Buttons. We also use non-inclusive checkboxes, which can be selected independently. The Choice class implements the pop-up menu that allows users to select items from a menu. This UI component dispalys the currently selected item with a arrow to its right.
/* <applet code = "RadioTest.class" height = 300 width = 300 > </applet> */ import java.awt.*; import java.awt.event.*; import java.applet.*; public class RadioTest extends Applet { public void init() { CheckboxGroup cbg = new CheckboxGroup(); // Checkbox(label, specific checkgroup,checked:boolean) Checkbox c1 = new Checkbox("Black and White",cbg,false); Checkbox c2 = new Checkbox("Color",cbg,false); //adding mouselistener to the corresponding // component to trap the event c1.addMouseListener(new check1()); c2.addMouseListener(new check2()); //adding components to the container add(c1); add(c2); //To create a Choice Menu(say to list the various choices) // a Choice Object is instantiated. // In short-Choice() constructor creates a new choice menu //& you add items using addITem() Choice c = new Choice(); c.add("LG"); c.add("Onida"); c.add("BPL"); c.add("Samsung"); c.add("Philips"); c.add("Sony"); // adding ItemListener to choice then adding it to the container c.addItemListener(new Ch()); add(c); } Class check1 extends MouseAdapter { Public void mouseClicked(MouseEvent e) { showStatus("You have selected Black & White TV option"); } } Class check2 extends MouseAdapter { Public void mouseClicked(MouseEvent e) { showStatus("You have selected Color TV option"); } } Class Ch implements ItemListener { Public void itemStateChanged(ItemEvent e) { String s =(String)e.getItem(); showStatus("You have selected" + s + " brand for your TV"); } } }
All Rights Reserved. © 2024 BookOfNetwork