2012-03-11 5 views
1
import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
public class test extends JFrame implements MouseListener 
{ 
JFrame f; 
JPanel p; 
JButton b; 
test() 
{ 
    f=new JFrame("My Frame"); 
    p=new JPanel(); 
    f.add(p); 
    b=new JButton("Button"); 
    p.add(b); 
    f.setSize(100,100); 
    f.setVisible(true); 
    b.addMouseListener(new MouseListener() 
    { 
     public void mouseClicked(MouseEvent ae) 
     { 
      System.out.print("mouse clicked"); 
     } 
    }); 
    b.addMouseListener(new MouseListener() 
    { 
     public void mouseEntered(MouseEvent ae) 
     { 
      System.out.print("mouse Entered"); 
     } 
    }); 
    b.addMouseListener(new MouseListener() 
    { 
     public void mouseExited(MouseEvent ae) 
     { 
      System.out.print("mouse Exited"); 
     } 
    }); 
    b.addMouseListener(new MouseListener() 
    { 
     public void mousePressed(MouseEvent ae) 
     { 
      System.out.print("mouse Pressed"); 
     } 
    }); 
    b.addMouseListener(new MouseListener() 
    { 
     public void mouseReleased(MouseEvent ae) 
     { 
      System.out.print("mouse Released"); 
     } 
    }); 
} 
public static void main(String args[]) 
{ 
    new test(); 
} 
} 

Ошибки заключаются в следующем:не могу понять и устранить ошибки переопределения метода этой программы

--------------------Configuration: <Default>-------------------- 
C:\Users\SHUBHENDU\Documents\test.java:19: <anonymous test$1> is not abstract and  does not override abstract method mouseExited(java.awt.event.MouseEvent) in  java.awt.event.MouseListener 
     { 
     ^
C:\Users\SHUBHENDU\Documents\test.java:26: <anonymous test$2> is not abstract and does not override abstract method mouseExited(java.awt.event.MouseEvent) in java.awt.event.MouseListener 
     { 
     ^
C:\Users\SHUBHENDU\Documents\test.java:33: <anonymous test$3> is not abstract and does not override abstract method mouseEntered(java.awt.event.MouseEvent) in java.awt.event.MouseListener 
     { 
     ^
C:\Users\SHUBHENDU\Documents\test.java:40: <anonymous test$4> is not abstract and does not override abstract method mouseExited(java.awt.event.MouseEvent) in java.awt.event.MouseListener 
     { 
     ^
C:\Users\SHUBHENDU\Documents\test.java:47: <anonymous test$5> is not abstract and does not override abstract method mouseExited(java.awt.event.MouseEvent) in java.awt.event.MouseListener 
     { 
     ^
5 errors 
+2

не связаны, но ваш класс имя должно быть капитализировано, поэтому его не путать с методами. 'public class Test' – jmort253

ответ

4

Если у вас есть конкретный Java-класс (не абстрактный класс), вы должны реализовать все методы, которые имеет интерфейс, конечно, если ваш класс реализует этот интерфейс. So добавить нереалистичные методы от MouseListener интерфейс к вашему коду. Но вы добавляете новый MouseListener к одной и той же кнопке каждый раз. Это не так, как он используется. Вы можете/должны реализовать все методы MouseListener в том же самом теле кода. Удалить redundant MouseListener дополнения к вашему JButton b.

+0

thanx for ur help :)) – desprado

2

Я не знаком с AWT, но кажется, что у вас есть не-абстрактный класс (test), который не реализует абстрактные методы интерфейса (MouseListener).

http://docs.oracle.com/javase/tutorial/uiswing/events/mouselistener.html

Вы должны реализовать:

mouseClicked(MouseEvent)  
mouseEntered(MouseEvent) 
mouseExited(MouseEvent) 
mousePressed(MouseEvent)  
mouseReleased(MouseEvent) 

Если ваш класс был абстрактными, вы бы не требуются для реализации этих методов (бремя будет на следующем неабстрактных подкласса для этого).

2

Если вы просто хотите, чтобы переопределить один метод интерфейса MouseListener, вы могли бы использовать MouseAdapter следующим образом:

JButton button = new JButton("Click"); 
button.addMouseListener(new MouseAdapter() { 
    @Override 
    public void mouseClicked(MouseEvent e) { 
     System.out.println("mouse was clicked"); 
    } 
}); 
+0

спасибо, что приятель тоже был полезен :) – desprado

1

Чтобы исправить эти ошибки ...

1) Remove "implements MouseListener" 

2) Change MouseListener to MouseAdapter 
Смежные вопросы