2013-10-10 4 views
1

я получаю сообщение об ошибке:Что случилось с java keylistener?

Multiple markers at this line 
    - The type Main must implement the inherited abstract method  KeyListener.keyTyped(KeyEvent) 
    - The serializable class Main does not declare a static final serialVersionUID field of type  long 
    - The type Main must implement the inherited abstract method  KeyListener.keyPressed(KeyEvent) 

что я должен делать?

это мой код: (я заметил, рядом с местом ошибки)

`package drawLines; 

import java.util.Date; 
    import java.awt.event.ActionEvent; 
    import java.awt.event.ActionListener; 
    import java.awt.event.KeyAdapter; 
    import java.awt.event.KeyEvent; 
    import java.awt.event.KeyListener; 
    import java.applet.Applet; 
    import java.awt.Color; 
    import java.awt.Graphics; 

    import javax.swing.JFrame; 
    import javax.swing.JPanel; 
    import javax.swing.Timer; 


**/*here appears the error message*/**public class Main extends Applet implements KeyListener { 

    boolean right=true; 
    boolean left=false; 
    boolean up=false; 
    boolean down=false; 
    boolean inGame=true; 

    public void listen(){ 
     addKeyListener((KeyListener) this); 
     setFocusable(true); 
     setFocusTraversalKeysEnabled(false); 
    } 

    public void actionPerformed(KeyEvent e){ 
     int key = e.getKeyCode(); 

     if (key == KeyEvent.VK_LEFT) { 
      left=true; 
      up=false; 
      down=false; 
     } 

     if (key == KeyEvent.VK_RIGHT) { 
      right=true; 
      up=false; 
      down=false; 
     } 

     if (key == KeyEvent.VK_UP) { 
      up=true; 
      right=false; 
      left=false; 
     } 

     if (key == KeyEvent.VK_DOWN) { 
      down=true; 
      right=false; 
      left=false; 
     } 


    } 

    public void keytyped(KeyEvent e){} 
    public void keyReleased(KeyEvent e){} 




    int x1=5; 
    int y1=5; 
    int x2=x1+5; 
    int y2=y1+5; 


    public int moveRight(){ 
     return ++x1; 
    } 

    public int moveLeft(){ 
     return --x1; 
    } 

    public int moveUp(){ 
     return ++y1; 
    } 

    public int moveDown(){ 
     return --y1; 
    } 

    public void paint1(Graphics g){ 
     g.drawOval(x1,y1,x2,y2); 
    } 



    public void paint(Graphics e){ 

     while (right=true){ 
     long millis =System.currentTimeMillis(); 
     long millisn =System.currentTimeMillis(); 

      while (millisn<millis+20){ 
       millisn=System.currentTimeMillis(); 
      } 

     e.setColor(Color.white); 
     e.drawOval(x1,y1,x2,y2); 
     e.setColor(Color.red); 
     moveRight(); 
     e.drawOval(x1,y1,x2,y2); 

     } 
     while(inGame==true){ 
      if(right==true){ 
       long millis =System.currentTimeMillis(); 
       long millisn =System.currentTimeMillis(); 

        while (millisn<millis+20){ 
         millisn=System.currentTimeMillis(); 
        } 

       e.setColor(Color.white); 
       e.drawOval(x1,y1,x2,y2); 
       e.setColor(Color.red); 
       moveRight(); 
       e.drawOval(x1,y1,x2,y2); 
      } 

      else if(down==true){ 
        long millis =System.currentTimeMillis(); 
        long millisn =System.currentTimeMillis(); 

         while (millisn<millis+20){ 
            millisn=System.currentTimeMillis(); 
         } 

        e.setColor(Color.white); 
        e.drawOval(x1,y1,x2,y2); 
        e.setColor(Color.red); 
        moveDown(); 
        e.drawOval(x1,y1,x2,y2); 

      } 
       else if (left==true){ 
        long millis =System.currentTimeMillis(); 
        long millisn =System.currentTimeMillis(); 

         while (millisn<millis+20){ 
          millisn=System.currentTimeMillis(); 
         } 

        e.setColor(Color.white); 
        e.drawOval(x1,y1,x2,y2); 
        e.setColor(Color.red); 
        moveLeft(); 
        e.drawOval(x1,y1,x2,y2); 


        }} 
    } 

    public static void main(String[] args) { 

    }  


     } 

`

+1

реализовать их! – RamonBoza

ответ

2

Ошибки говорят все:

Тип Main должен реализовать унаследованный абстрактный метод KeyListener.keyTyped (KeyEvent)

  • Вам нужно реализовать абстрактные методы, для этого один раз исправить орфографию, как JavaBanana сказал.

сериализуемый класс Main не объявляет статическое конечного serialVersionUID поля типа длинного

  • Это идентификатор необходимо включить в классе, просто создать один или Google пример ID

Тип Main должен реализовать унаследованный абстрактный метод KeyListener.keyPressed (KeyEvent)

  • Опять вам нужно реализовать абстрактный метод keyPressed. Под этим я подразумеваю, что вы должны определить и реализовать метод, который будет вызываться в этой ситуации.

Многие IDE позаботятся об этом и даже создадут декларацию метода для вас, сделайте снимок. (Я использую netbeans)

+0

большое вам спасибо! вы много помогли! – Atlantis

1

Вы видите метод "keytyped (KeyEvent е)", но он должен быть«keyTyped (KeyEvent е)

"T" должен быть в верхнем регистре :)

И заменить actionPerformed метод с методом Keypressed() ..

Смежные вопросы