Avatar billede morteeart Nybegynder
13. januar 2005 - 11:28 Der er 4 kommentarer og
1 løsning

få kode ud af main, og måske noget interface ?

Hej

Har denne her kode, men synes der er for meget kode i main metoden,
og kan ikke finde ud af at få et ud af den.

Har også prøvet med noget interface, men kunne ikke helt finde ud af det.

Nogen som kan prøve at sætte pacMan.addKeyListener(new KeyAdapter().... osv. uden for main() ?

[kode]

/**
Java v. 1.4.2
http://java.sun.com/j2se/1.5.0/docs/api/java/awt/event/KeyEvent.html
*/
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;

public class PacMan extends JFrame
{
    public PacMan(String str)
    {
      super(str);
    }

    public static void main(String[] args)
    {
      JFrame pacMan = new PacMan("PacMan");
      pacMan.setSize(100,100);
      pacMan.setVisible(true);

      pacMan.addKeyListener(new KeyAdapter()
      {
        public void keyPressed(KeyEvent ev)
        {
          if(ev.getKeyCode() == KeyEvent.VK_UP)
          {
            System.out.println("pil op");
          }
          else if(ev.getKeyCode() == KeyEvent.VK_DOWN)
          {
            System.out.println("pil ned");
          }
          else if(ev.getKeyCode() == KeyEvent.VK_LEFT)
          {
            System.out.println("pil til venstre");
          }
          else if(ev.getKeyCode() == KeyEvent.VK_RIGHT)
          {
            System.out.println("pil til hoejre");
          }
          else
          {
            System.out.println("Tast: '" + ev.getKeyChar() + "'");  //andre taster
          }
        }
      } );

    }


}
Avatar billede soreno Praktikant
13. januar 2005 - 11:35 #1
Jeg ville nok strukturere det ca. således:
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;

public class Main extends JFrame implements KeyListener
{
    public Main(String str)
    {
    super(str);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    setSize(100,100);
    setVisible(true);
    addKeyListener(this);

    setSize(640, 480);
    }

    public void keyPressed(KeyEvent ev)
    {
    if(ev.getKeyCode() == KeyEvent.VK_UP)
    {
            System.out.println("pil op");
    }
    else if(ev.getKeyCode() == KeyEvent.VK_DOWN)
    {
            System.out.println("pil ned");
    }
    else if(ev.getKeyCode() == KeyEvent.VK_LEFT)
    {
            System.out.println("pil til venstre");
    }
    else if(ev.getKeyCode() == KeyEvent.VK_RIGHT)
    {
            System.out.println("pil til hoejre");
    }
    else
    {
            System.out.println("Tast: '" + ev.getKeyChar() + "'");  //andre taster
    }
    }
    public void keyReleased(KeyEvent ev) {}
    public void keyTyped(KeyEvent ev) {}

    public static void main(String[] args)
    {
    new Main("PacMan");
    }
}
Avatar billede arne_v Ekspert
13. januar 2005 - 12:06 #2
Traditionelt putter man alt den slags i constructor for Swing apps, så jeg er
helt enig med Søren
Avatar billede morteeart Nybegynder
13. januar 2005 - 12:07 #3
jah, det var dejligere med sådan struktur.

Er ikke lige den bedste til at bruge implements , men det virker ret smart :)

svar ?
Avatar billede soreno Praktikant
13. januar 2005 - 12:08 #4
Ok.

Du kan i øvrigt finde et hav af info her:
http://java.sun.com/docs/books/tutorial/uiswing/index.html
Avatar billede morteeart Nybegynder
13. januar 2005 - 12:12 #5
tak
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester