Tivutan Skrevet 31. oktober 2011 Del Skrevet 31. oktober 2011 Hei! Jeg sitter å tukler litt med java, har drevet med java i 2-3 måneder og fikk lyst til å prøve meg på noe så enkelt som å flytte et bildet ved hjelp av piltastene. (Noe som viste seg å ikke være så enkelt likevel:P) Jeg har googlet litt og prøvd meg med KeyListener og KeyEvent.. Har laget en kode med en firkant som jeg har tenkt å flytte på.. Den kompilerer og firkanten vises, men jeg klarer ikke å flytte den med piltastene:P Jeg skjønner rett og slett ikke hvordan jeg skal bruke KeyEvent og KeyListener:P Koden er muligens litt rotete siden jeg flyttet på en del ting i håp om at det skulle gi utslag. Legger ved koden så kan dere se om jeg er på riktig vei. import java.awt.Graphics; import javax.swing.JFrame; import javax.swing.JPanel; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; class Vindu extends JFrame{ public Vindu(String tittel){ setTitle("Flytte firkant med piltaster "); setSize(800,600); // bredde, høyde. setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Tegning tegningen = new Tegning(); add(tegningen); } } class Tegning extends JPanel{ int x = 0; public void keyTyped(KeyEvent e){ while(e.getKeyCode() != KeyEvent.VK_ESCAPE){ switch (e.getKeyCode()){ case KeyEvent.VK_RIGHT: x++; case KeyEvent.VK_LEFT: x--; } } this.repaint(); } public void paintComponent(Graphics tegneflate){ super.paintComponent(tegneflate); tegneflate.drawRect(x,x,20,20); } } class NyTest{ public static void main(String[]args){ Vindu etVindu = new Vindu("Flytte firkant med piltaster "); etVindu.setVisible(true); Tegning tegning = new Tegning(); } } Lenke til kommentar
geir_a Skrevet 1. november 2011 Del Skrevet 1. november 2011 Nå har jeg ikke programmert i Java på noen år, men tror du må gjøre noe tilnærmet dette: class Tegning extends JPanel implements KeyListener { int x = 0; public Tegning() { addKeyListener(this); } public void keyPressed(KeyEvent evt) { } public void keyReleased(KeyEvent evt) { } public void keyTyped(KeyEvent e){ while(e.getKeyCode() != KeyEvent.VK_ESCAPE){ switch (e.getKeyCode()){ case KeyEvent.VK_RIGHT: x++; case KeyEvent.VK_LEFT: x--; } } this.repaint(); } public void paintComponent(Graphics tegneflate){ super.paintComponent(tegneflate); tegneflate.drawRect(x,x,20,20); } } Lenke til kommentar
Tivutan Skrevet 24. april 2013 Forfatter Del Skrevet 24. april 2013 Hei! Jeg glemte helt denne. Fant ut av det og programmerer fortsatt java. Uansett, takk for svar Geir. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå