Avatar billede brian8 Nybegynder
31. oktober 2001 - 20:32 Der er 16 kommentarer og
1 løsning

Flytte et billede via tastaturet i java 2???

Jeg ved ikke hvordan jeg flytter er billede via tastature. Når jeg trykker på en tast,skal billedet rykkes et antal pixel frem i x-retningen. Hvilken metode kan jeg bruge til det?
Avatar billede soreno Praktikant
31. oktober 2001 - 20:44 #1
du skal implementere KeyListener

Mvh
Søren Olesen
Avatar billede brian8 Nybegynder
31. oktober 2001 - 20:45 #2
Og hvordan skal metoden så se ud?
Avatar billede soreno Praktikant
31. oktober 2001 - 20:47 #3
public MinKlasse implements KeyListener{

..

    public void keyReleased(KeyEvent e){}
    public void keyTyped(KeyEvent e){}
    public void keyPressed(KeyEvent e){
        if(e.getKeyCode()==27){ //Escape exitter
                System.exit(0);
        }
    }
}

så er det bare at finde de rette keycodes..
Avatar billede soreno Praktikant
31. oktober 2001 - 20:48 #4
hov forresten du skal også:
addWindowListener(this);
der hvor du initialisere dine komponenter osv..
Avatar billede brian8 Nybegynder
31. oktober 2001 - 20:49 #5
Jeg takker mange gange for hjælpen. Forsat god aften til dig soreno :)
Avatar billede brian8 Nybegynder
31. oktober 2001 - 21:04 #6
Kan ikke få det til at virke. Hvad har jeg lavet forkert?

import java.awt.event.KeyEvent.*;

public class mand extends Applet implements{    KeyListener{public void keyPressed(KeyEvent e){
        if(e.getKeyCode()==27){
            x++;
            paint();
        }     
}

Avatar billede soreno Praktikant
31. oktober 2001 - 21:11 #7
hmm prøv at poste hele koden...
Avatar billede brian8 Nybegynder
31. oktober 2001 - 21:12 #8
import java.awt.*;
import java.applet.*;
import java.awt.event.KeyListener.*; 

public class mand extends Applet implements KeyListener{

    public Image imgBaggrund;
    public Image imgMandHojre;
    public int x = 0;
   
    public void init ()
    {
        addWindowListener(this);
        imgBaggrund  = getImage(getCodeBase(), \"baggrund.jpg\");
        imgMandHojre = getImage(getCodeBase(), \"mand.jpg\");
       
       
        MediaTracker t = new MediaTracker(this);
        t.addImage(imgBaggrund, 0);
        t.addImage(imgMandHojre, 0);
        try { t.waitForID(0); } catch (InterruptedException e) {}                 
    }
   
    public void keyPressed(KeyEvent e){
        if(e.getKeyCode()==27){
            x++;
            paint();
        }     
    }

   
       
    public void update(Graphics g)
    {
        paint(g);
    }
   
    public void paint(Graphics g)
    {
        g.drawImage(imgBaggrund, 0, 0,this);
        g.drawImage(imgMandHojre, x,450,this);
    }
}
Avatar billede soreno Praktikant
31. oktober 2001 - 21:15 #9
jamen, når du implementer et interface indgår du en kontrakt der tvinger dig til at specificere de public metoder der er i interfacet.. i dette tilfælde:
public void keyReleased(KeyEvent e){}
    public void keyTyped(KeyEvent e){}
    public void keyPressed(KeyEvent e){
Avatar billede soreno Praktikant
31. oktober 2001 - 21:18 #10
hov, kom til at trykke...
prøver lige igen..
jamen, når du implementer et interface indgår du en kontrakt der tvinger dig til at specificere de public metoder der er i interfacet.. i dette tilfælde:
    public void keyReleased(KeyEvent e){}
    public void keyTyped(KeyEvent e){}
    public void keyPressed(KeyEvent e){}

så er det op til dig at behandle de events som programmet(brugeren) genererer.

Jeg kan desuden se at du ikke har tilføjet:
  addWindowListener(this);
hvilket fortæller hvilke objekter som interfacet skal lytte på.

Jeg var ikke klar over at det var en applet det skulle bruges til.. jeg har zero erfaring med applets.. men prøv det som jeg har skrevet..
Avatar billede soreno Praktikant
31. oktober 2001 - 21:20 #11
ups, sorry, du havde jo tilføjet addWindowListener(this);
..
Avatar billede brian8 Nybegynder
31. oktober 2001 - 21:22 #12
Når jeg compiler lyder fejlen:
C:\\applet\\mand.java:5: Interface KeyListener of class mand not found.
Avatar billede soreno Praktikant
31. oktober 2001 - 21:26 #13
prøv at:
import java.awt.event.*;
Avatar billede brian8 Nybegynder
31. oktober 2001 - 21:34 #14
Det var ok, men nu skriver den:
C:\\applet\\mand.java:15: Method addWindowListener(mand) not found in class mand.
Avatar billede soreno Praktikant
31. oktober 2001 - 21:44 #15
tjaaa, well, hmmm som jeg sagde er applets ikke min stærke side.. der bliver jeg nødt til at melde pas.
Avatar billede brian8 Nybegynder
31. oktober 2001 - 21:44 #16
Helt i orden. Man tak aligevel.
Avatar billede soreno Praktikant
31. oktober 2001 - 21:55 #17
forresten kan du kigge på
http://java.sun.com/docs/books/tutorial/uiswing/events/keylistener.html
det er godt nok swing.. men det kunne jo være der var noget nyttigt alligevel
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