KeyEvent macht nichts.^^

Irreparabel

Aktives Mitglied
So, nach einiger Zeit habe ich mal wieder etwas Zeit gefunden und wollte anfangen, ein kleines Spiel wie Pac Man o.ä zu Programmieren, dafür wollte ich KeyEvents benutzen, jedoch passiert bei mir überhaupt nichts. :/
Hier ist der Code:
Java:
import javax.swing.*;
import java.awt.event.*;

public class Test extends JFrame{

 ImageIcon SpielfigurIcon = new ImageIcon("Spielfigur.png");
 JLabel Spielfigur = new JLabel(SpielfigurIcon);
 KeyListener Bewegung = new KeyListener(){
  public void keyPressed(KeyEvent event){
   char Taste = event.getKeyChar();
   if (Taste == KeyEvent.VK_UP){
    int SpielfigurX = Spielfigur.getX();
    int SpielfigurY = Spielfigur.getY();
    SpielfigurY = SpielfigurY-5;
    Spielfigur.setLocation(SpielfigurX,SpielfigurY);
   }
   if (Taste == KeyEvent.VK_DOWN){
    int SpielfigurX = Spielfigur.getX();
    int SpielfigurY = Spielfigur.getY();
    SpielfigurY = SpielfigurY+5;
    Spielfigur.setLocation(SpielfigurX,SpielfigurY);
   }
   if (Taste == KeyEvent.VK_LEFT){
    int SpielfigurX = Spielfigur.getX();
    int SpielfigurY = Spielfigur.getY();
    SpielfigurX = SpielfigurX-5;
    Spielfigur.setLocation(SpielfigurX,SpielfigurY);
   }
   if (Taste == KeyEvent.VK_RIGHT){
    int SpielfigurX = Spielfigur.getX();
    int SpielfigurY = Spielfigur.getY();
    SpielfigurX = SpielfigurX+5;
    Spielfigur.setLocation(SpielfigurX,SpielfigurY);
   }
  }
  public void keyReleased(KeyEvent event){

  }
  public void keyTyped(KeyEvent event){

  }
 };

public Test
(String title){
 addKeyListener(Bewegung);
 setSize(406,432);
 setResizable(false);
 setLayout(null);
 setVisible(true);
 
 Spielfigur.setSize(30,30);
 Spielfigur.setLocation(50,50);
 add(Spielfigur);
 Spielfigur.setVisible(true);
}

public static void main(String[] args){
 new Test("Test");
 }
}

Danköö. :)
 

Teh_Lord

Mitglied
Mh könnte sein, dass beim adden im Konstruktor der Fokus auf das JLabel gesetzt wird. Ich denke mal, dass es daher nicht funktioniert, weil der Listener eines JFrames meines Wissens nur funktioniert, wenn man auch dieses fokussiert hat. Versuche mal deinen Konstruktor am Ende um
Code:
Spielfigur.setFocusable(false);
zu erweitern und teste das ganze nochmal. Funktionniert es nun?


Aber mal was anderes:
Dein Ansatz die Grafiken über JLabels anzuzeigen ist eher ungeeignet für Spiele.
Der übliche Weg so ein Spiel zu programmieren ist, ein JPanel in das JFrame einzubetten und über dessen Methode "paint" bzw. "paintComponent" alles auf das Panel zu zeichnen.
Hier sollte dann dein Problem nicht mehr auftreten, falls es das sein sollte, was ich oben beschrieben habe, denn hier kann man den Fokus mittels der Methode setFocusable, die sowohl das JPanel, als auch das JFrame besitzen
Guck dich mal ein bisschen um. Dazu findet man zahlreiche, gute Tutorials.

z.B. hier: Klick Mich

- Micha
 

Irreparabel

Aktives Mitglied
Habe den Konstruktor mit "Spielfigur.setFocusable(false);" erweitert, hat jedoch nicht geholfen.
Trotzdem vielen Dank für den Tipp mit den Tutorials!
Da hab' ich die Tage wieder was zu tun. :)
 

sambalmueslie

Bekanntes Mitglied
Hm ..

schau mal was für ein Datentyp das "getKeyChar" ist und was der Datentyp von z.b. Keyevent.VK_UP ist ;)

und dann versuchst mal "getKeyCode"

z.b. so :

Java:
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JFrame;

public class KeyEventGame extends JFrame {

	/**
	 * 
	 */
	private static final long serialVersionUID = -2851074353902426079L;

	public static void main(final String[] args) {
		new KeyEventGame("Test");
	}

	public KeyEventGame(final String title) {
		addKeyListener(new KeyListener() {
			public void keyPressed(final KeyEvent event) {

				switch (event.getKeyCode()) {
				case KeyEvent.VK_UP:
					System.out.println("UP");
					break;
				case KeyEvent.VK_DOWN:
					System.out.println("DOWN");
					break;
				case KeyEvent.VK_LEFT:
					System.out.println("LEFT");
					break;
				case KeyEvent.VK_RIGHT:
					System.out.println("RIGHT");
					break;
				}
			}

			@Override
			public void keyReleased(final KeyEvent arg0) {
				// TODO Auto-generated method stub

			}

			@Override
			public void keyTyped(final KeyEvent arg0) {
				// TODO Auto-generated method stub

			}
		});
		setSize(200, 200);
		setVisible(true);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
	}

}

Gruß Oli
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J JLabel bzw. Image Icon mit KeyEvent bewgen Java Basics - Anfänger-Themen 9
T KeyEvent Problem Hilfe!! Java Basics - Anfänger-Themen 5
Xentox501 keyevent.VK_LEFT wird beim drücken jeder belibigen Taste aktiv. Java Basics - Anfänger-Themen 3
T KeyEvent - Gedankenfehler? Java Basics - Anfänger-Themen 3
P Klassen Bei KeyEvent in KeyListener den Tastendruck abbrechen Java Basics - Anfänger-Themen 5
S Eigene KeyEvent-Mask erstellen Java Basics - Anfänger-Themen 4
B Input/Output jTextField - KeyEvent - Zeichen soll nicht erscheinen Java Basics - Anfänger-Themen 6
F KeyEvent Frage Java Basics - Anfänger-Themen 2
MrGe keyevent gleichheitszeichen Java Basics - Anfänger-Themen 2
S KeyEvent Maker funktioniert nicht. Java Basics - Anfänger-Themen 4
S String KeyEvent parsen Java Basics - Anfänger-Themen 2
D KeyEvent Taste blockieren. Java Basics - Anfänger-Themen 2
StickToFreak Graphicsg, KeyEvent ec <-- geht das? Java Basics - Anfänger-Themen 11
? Problem mit KeyEvent.VK_DOWN Java Basics - Anfänger-Themen 4
A KeyEvent wird nicht erkannt Java Basics - Anfänger-Themen 2
A keyevent > keyPressed > vk_enter Java Basics - Anfänger-Themen 12
P KeyEvent.VK_Enter Java Basics - Anfänger-Themen 3
G KeyEvent in JFrame Java Basics - Anfänger-Themen 2
S Keyevent in Panel Java Basics - Anfänger-Themen 5
C public void keyPressed(KeyEvent e) Java Basics - Anfänger-Themen 2
G KeyListener und KeyEvent Java Basics - Anfänger-Themen 6
S KeyEvent Tastenkombination? Java Basics - Anfänger-Themen 1
D Button KeyEvent zuweisen. Java Basics - Anfänger-Themen 15
G KeyEvent verzögert Java Basics - Anfänger-Themen 11
G KeyEvent auswerten Java Basics - Anfänger-Themen 2
Z KeyEvent in JButton? Java Basics - Anfänger-Themen 12
D Interfaces von Interfaces macht das noch Sinn? Java Basics - Anfänger-Themen 21
MoxMorris Wie macht man String[] = String[] aus einer anderer Methode? Java Basics - Anfänger-Themen 18
ohneInformatik; For Schleife. Was macht dieser Code?? Java Basics - Anfänger-Themen 5
U Beispiel Methode size() vom "Collection"-interface... Wie kann man sichtbar machen, was die Methode unter der Haube macht? Java Basics - Anfänger-Themen 8
berserkerdq2 Warum macht man in IJVM am Anfang Bipush 0? Java Basics - Anfänger-Themen 1
S Was macht ++ ohne Schleife? Java Basics - Anfänger-Themen 4
J Hallo zusammen , was macht diese Methode hier genau? Java Basics - Anfänger-Themen 3
K Gleitkommazahl macht man 0 punkt matisse oder 1 punkt matisse Java Basics - Anfänger-Themen 2
B Methoden warum macht die Methode nicht das was ich erwarte? Java Basics - Anfänger-Themen 2
E Macht Java Rechenfehler beim Potenzieren und Mod? Java Basics - Anfänger-Themen 5
V Switch Methode macht Code kaputt Java Basics - Anfänger-Themen 18
N Was macht die Klasse? Java Basics - Anfänger-Themen 3
T Was macht diese Zeile? Java Basics - Anfänger-Themen 9
R getUserProperties() macht für mich keinen Sinn Java Basics - Anfänger-Themen 8
L Was genau macht -> Java Basics - Anfänger-Themen 18
J Was genau macht die Methode close() im InputStream? Java Basics - Anfänger-Themen 5
U Best Practice Fehleranalyse, welche Fehler macht Ihr beim Lernen bzw. auch später Java Basics - Anfänger-Themen 12
L Hilfe! Was macht dieser Code? Java Basics - Anfänger-Themen 1
C Was macht `public class ClassName<T extends Comparable<T>>`? Java Basics - Anfänger-Themen 14
M Was macht super (...)? Java Basics - Anfänger-Themen 1
Tommy135 Klassen jComboBox macht nicht was sie soll Java Basics - Anfänger-Themen 4
J JButton macht was er will Java Basics - Anfänger-Themen 3
R While-Schleife macht nicht was sie soll Java Basics - Anfänger-Themen 24
JavaNewbie2.0 Habe ein frage wie man etwas macht. Java Basics - Anfänger-Themen 13
B Was macht diese Methode? Java Basics - Anfänger-Themen 9
P Was macht diese methode Java Basics - Anfänger-Themen 2
Tacofan Was macht dieses "Stückchen Code"? Java Basics - Anfänger-Themen 3
F JSON null macht mir ein Problem Java Basics - Anfänger-Themen 3
L Was genau macht "public static void" ? Java Basics - Anfänger-Themen 12
C Hilfe - Kleines Programm macht mir Schwierigkeiten Java Basics - Anfänger-Themen 2
G Methoden Was genau macht die Methode light.setInfluencingBounds ? Java Basics - Anfänger-Themen 5
B Erste Schritte Way of life ohne import - Habe Beispiel, macht Unfug Java Basics - Anfänger-Themen 21
D Methoden Filewriter macht keine Zeilenumbrüche Java Basics - Anfänger-Themen 3
E Erste Schritte [Noob-Frage] Meine If-Abfrage macht nicht, was sie soll... Java Basics - Anfänger-Themen 2
H Tastatur.wurdeGedrueckt() macht nicht das, was ich will :/ Java Basics - Anfänger-Themen 2
K Was macht hier genau return? Java Basics - Anfänger-Themen 2
E Einfache For-Schleife macht nicht was sie soll Java Basics - Anfänger-Themen 2
J Shakersort, das Array macht Probleme! Java Basics - Anfänger-Themen 4
A scan.nextLine() - Wenn man zu lange nichts macht, soll etwas passieren Java Basics - Anfänger-Themen 3
C Scrollpanel autoscroll(false) macht nix Java Basics - Anfänger-Themen 2
M StringTokenizer macht Quatsch Java Basics - Anfänger-Themen 21
N Papaklasse macht Zicken mit Parameterkonstruktor Java Basics - Anfänger-Themen 7
K Datentypen double x als Bruch aus Integern macht x zu integer? Java Basics - Anfänger-Themen 3
C Erste Schritte was macht eigentlich "for (;;)" Java Basics - Anfänger-Themen 7
C JDK-Installer macht nichts Java Basics - Anfänger-Themen 11
A JApplet: einbinden von weiteren Jars macht Probleme Java Basics - Anfänger-Themen 2
B Variablen Wie macht man eine call by reference mit primitiven Datentypen in Java? Java Basics - Anfänger-Themen 2
I Für was macht man "deep Kopien" Java Basics - Anfänger-Themen 4
S Erste Schritte While do Schleife - macht nicht was sie soll Java Basics - Anfänger-Themen 7
9 Programm macht nicht was es soll Java Basics - Anfänger-Themen 6
H Was macht diese Methode? Java Basics - Anfänger-Themen 3
S JApplet macht Probleme Java Basics - Anfänger-Themen 2
Y Was macht folgende Regular Expression Java Basics - Anfänger-Themen 2
M Was macht bzw. was bringt ein constructor? Java Basics - Anfänger-Themen 12
P orphaned case macht probs Java Basics - Anfänger-Themen 3
ruutaiokwu System.err.print(ln) macht ein durcheinander??! Java Basics - Anfänger-Themen 8
X Selectionsort macht Probleme Java Basics - Anfänger-Themen 2
P was macht der code? Java Basics - Anfänger-Themen 4
M OOP for Schleife macht mir Probleme mit Arrays Java Basics - Anfänger-Themen 7
R Was macht...? Java Basics - Anfänger-Themen 4
alderwaran closed source jar, kein javadoc. was macht methode x eigentlich? ( oracle forms pjc beans ) Java Basics - Anfänger-Themen 2
M JavaEditor macht Probleme! Invalid Flag! Java Basics - Anfänger-Themen 9
P Was macht dieser Source code? Java Basics - Anfänger-Themen 5
R BufferedWriter macht komische Zeichen Java Basics - Anfänger-Themen 3
E new File macht den Pfad kaputt Java Basics - Anfänger-Themen 15
S Wie macht man sowas?? Ist da ne If-Schleife richtig?? Java Basics - Anfänger-Themen 22
Pithecanthropus Thread anhalten, der aber ein readObject() macht. Java Basics - Anfänger-Themen 4
T aufruf methode in methode macht probleme Java Basics - Anfänger-Themen 9
I Was macht diese Funktion? Java Basics - Anfänger-Themen 4
0 Was macht eine IOException? Java Basics - Anfänger-Themen 4
0 Was ist ein GregorianCalender?(Was macht es etc.) Java Basics - Anfänger-Themen 2
T Calender / DateFormat macht plus ein Monat Java Basics - Anfänger-Themen 3
T "x hoch y" macht nur "x mal x"^^ Java Basics - Anfänger-Themen 3
M Objektorientierung - wie macht man's richtig? Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben