2015-01-03 46 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是抽象的;無法實例化 MouseListener circle = new MouseListener(); – Sygnerical

+0

什麼是MouseListener而不是接口?你不能創建一個接口的實例,你的例子顯示沒有* class *名爲'MouseListener' –

相關問題