What is wrong with the following code Give two effective way
What is wrong with the following code? Give two effective ways to fix it.
1 import javax.swing.*;
 2 import java.awt.event.*;
 3
 4 public class H2ClassJ extends JFrame {
 5    public static final long serialVersionUID = 22;
 6
 7 public H2ClassJ () {
 8      addMouseListener (new MouseListener () {
 9    public void mouseClicked (MouseEvent e) {}
 10     });
 11   } // end constructor
 12
 13 } // end class H2ClassJ
Solution
wrong:-
The listener interface MouseListener has 5 abstract methods.So the class H2ClassJ must be declared abstract or it must implement all abstract methods of MouseListener interface
 the methods are
 public void mouseClicked (MouseEvent e) {}
 public void mousePressed (MouseEvent e)
 public void mouseReleased (MouseEvent e) {}
 public void mouseEntered (MouseEvent e) {}
 public void mouseExited (MouseEvent e) {}
 But only mouseClicked is implemented.
 solution:
 To fix the problem
 1. implement all methods (as above)
 2. Use an Adapter class(MouseAdapter) and implement public void mouseClicked (MouseEvent e) method
Example -1 : for solution-1
import javax.swing.*;
 import java.awt.event.*;
public class H2ClassJ extends JFrame {
 public static final long serialVersionUID = 22;
public H2ClassJ () {
 addMouseListener (new MouseListener () {
 public void mouseClicked (MouseEvent e) {}
 public void mousePressed (MouseEvent e) {}
 public void mouseReleased (MouseEvent e) {}
 public void mouseEntered (MouseEvent e) {}
 public void mouseExited (MouseEvent e) {}
});
 } // end constructor
} // end class H2ClassJ
Example-2:for solution-2 :just replace MouseListener with MouseAdapter
import javax.swing.*;
 import java.awt.event.*;
public class H2ClassJ extends JFrame {
 public static final long serialVersionUID = 22;
public H2ClassJ () {
 addMouseListener (new MouseAdapter() {
 public void mouseClicked (MouseEvent e) {}
 });
 } // end constructor
} // end class


