2015-01-03 1 views
1

색상이 바뀌지 만 클릭 부분이 작동하지 않을 때 원을 클릭하여 반응 시간을 테스트하는 프로그램을 작성하려고합니다. 내 클래스가 추상적이지 않고 MouseListener의 메소드를 넘지 않는다는 오류가 계속 발생합니다. 여기에 코드가 있습니다.클래스가 추상이 아니며 승차 오류가 아닙니다.

  import java.util.*; 
      import java.io.*; 
      import java.awt.*; 
      import java.awt.event.*; 
      import java.util.Random; 
      import java.awt.event.MouseEvent; 
      import java.awt.event.MouseListener; 
      import java.awt.event.MouseMotionListener; 

      public class Stopwatch 
      { 
       public static int windowX = 900; 
       public static int windowY = 700; 

       public static void main(String args[]) 
       { 
        GfxApp gfx = new GfxApp(); 
        gfx.setSize(900,700); 
        gfx.addWindowListener(new WindowAdapter() {public void 
        windowClosing(WindowEvent e) {System.exit(0);}}); 
        gfx.show(); 
       } 
      } 

      class GfxApp extends Frame 
      { 
       public void paint(Graphics g) 
       {   
        Timer.drawgreen(g); 
        Timer.pause(); 
        Timer.drawred(g); 

       } 
      } 

      class Timer 
      { 
       public static int circlex = 300; 
       public static int circley = 200; 
       public static int radius = 250; 

       public static void drawgreen(Graphics g) 
       { 
        g.setColor(new Color(0,255,0)); 
        g.fillOval(circlex, circley, radius, radius); 
       } 

       public static void drawred(Graphics g) 
       { 
        g.setColor(new Color(255,0,0)); 
        g.fillOval(circlex, circley, radius, radius); 
       } 

       public static void pause() 
       { 
        Random rand = new Random(); 

        int k = rand.nextInt(301); 

        for(double i = 0; i < 500 + k; i += .000001) 
        { 
      //      delay 
        } 
       } 
      } 

      class Mouse implements MouseListener 
      { 
       MouseListener circle = new MouseListener(); 

       public void MouseClicked (MouseEvent me) 
       { 
       } 
       public void MouseEntered (MouseEvent me) 
       { 
       } 
       public void MouseExited (MouseEvent me) 
       { 
       } 
       public void MousePressed (MouseEvent me) 
       { 
       } 
       public void MouseReleased (MouseEvent me) 
       { 
       } 
      } 
+0

오류 메시지를 출력 하시겠습니까? – theAlse

+0

내 대답은 무엇이 자세히 일어나는지 설명합니다. –

+0

나는 McKeown이 말한 것을했는데이 오류가 있습니다. MouseListener는 추상입니다. 인스턴스화할 수 없습니다 MouseListener circle = new MouseListener(); – Sygnerical

답변

0

귀하의 구현 방법에 따라서 컴파일러는 클래스가 계약을 만족하지 고려하고이 클래스는 추상으로 표시 할 것을 제안, 인터페이스의 경우 일치하지 않습니다.

void mouseClicked(MouseEvent e) { } 

당신은 그것을이 : (자본 M 대신에 낮은 m의)

void MouseClicked (MouseEvent me) { } 

여기이 줄이 나를 혼란 :

MouseListener circle = new MouseListener(); 

예를 들어

는, 인터페이스는이 방법을 정의

제가보기에, MouseListener은 인터페이스입니다. 분명히 왼쪽면에 de 유형을 인터페이스로 클리어링하지만 오른쪽은 구체적인 클래스 여야합니다.

+0

변경 한 후에도이 오류가 계속 발생합니다. MouseListener는 abstract입니다. 인스턴스화할 수 없습니다 MouseListener circle = new MouseListener(); – Sygnerical

+0

인터페이스가 아닌'MouseListener'는 무엇입니까? 인터페이스의 인스턴스를 생성 할 수 없습니다. 예제는'MouseListener'라는 * class *를 보여주지 않습니다. –

관련 문제