Erste Versuche eine Art "EventHandler" zu bauen..

oOJavaNeulingOo

Bekanntes Mitglied
Guten Abend!

Ich habe mal ein bisschen versucht eine Art EventHandler zu bauen.
Leider schließt sich das Programm sofort noch dem start, ohne etwas auszugeben...

Code:
Java:
public static void main(String[] args) {
		new Converter(); //Command #1
		new TestHandler().start();
	}
	
	/**
	 * Registriere einen Befehl
	 * @param c - Die Command-Klasse
	 */
	public void registerCommand(Command c){
		commands.add(c);
	}
	
	/**
	 * Starten des Programmes
	 */
	private void start(){
		try{
			BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
			for(Command c : commands){
				c.onCommand(reader.readLine());
			}
			reader.close();
		}catch(Exception e){
			
		}
	}	
	private ArrayList<Command> commands = new ArrayList<Command>();
Command:
Java:
public class Command {
	
	public void onCommand(String cmd){
		
	}

}

ODER

public interface Command {
	
	public void onCommand(String cmd);

}

Converter:
Java:
public class Converter extends Command{

	@Override
	public void onCommand(String cmd) {
		System.out.println(cmd);
		
	}
public Converter(){
		new TestHandler().registerCommand(this);
	}
}

ODER

public class Converter implements Command{

	public void onCommand(String cmd) {
		System.out.println(cmd);
		
	}

	
	public Converter(){
		new TestHandler().registerCommand(this);
	}
}

Funktioniert alles nicht..
 

DrZoidberg

Top Contributor
Ich würde sagen, benutze die Interface Veriante. Der Fehler ist, dass du den Converter zu einer neuen Instanz von TestHandler hinzufügst. Du musst all Command Objekte beim selben TestHandler registrieren.
Also ungefähr so
Java:
public static void main(String[] args) {
        TestHandler handler = new TestHandler();
        handler.registerCommand(new Converter());
        handler().start();
    }

Und im Converter kannst du dann den Konstruktor weglassen.
Und dann ist da noch ein zweiter Fehler
Java:
for(Command c : commands){
                c.onCommand(reader.readLine());
            }
Sollte wahrscheinlich geändert werden in
Java:
String line = reader.readLine();
for(Command c : commands){
                c.onCommand(line);
            }
 

oOJavaNeulingOo

Bekanntes Mitglied
Vielen Dank, ich probiere es sofort aus!

EDIT: Es funktioniert *_*!! Vielen Dank :D!

Btw, war mein Anlauf mit der ArrayList und dem Interface denn überhaupt akzeptabel, oder macht man das normalerweise ganz anders?
 
Zuletzt bearbeitet:

DrZoidberg

Top Contributor
ArrayList plus Interface ist die übliche Methode EventHandler zu implementieren.
Die EventListener in den java swing Klassen benutzen das selbe Prinzip.
 

oOJavaNeulingOo

Bekanntes Mitglied
Okay, vielen Dank!

Eine letzte Frage: Nachdem ich die Startmethode ausgeführt habe, und alle Commands benutzt habe, will ich die Methode nochmal usführen - Quasi als unendlicher Schaltkreis, allerdings kriege ich dann fehler..
 

oOJavaNeulingOo

Bekanntes Mitglied
UUuuund nochwas: Wie kann ich eine Art Priorität setzen? Muss ich dafür wirklich ein Enum erstellen und die ArrayList zu einer HashMap erweitern D: ? Die Priorität soll angeben was als erstes ausgeführt werden soll und was als letztes und so :/ so dass der exit command die höchste priorität hat zb
 

oOJavaNeulingOo

Bekanntes Mitglied
Naja, "CommandHandler" ist ja einfach.. Aber wie baue ich einen EventHandler?

zB habe ich irgendwo im Code einen Code, welcher ein Objekt bewegt, doch statt es zu bewegen ruft es alle Klassen die ein @EventHandler über einer Methode - naürlich registriert (die klasse) - und ein zB MoveEvent in den argumenten haben auf.. Und MoveEvent beihnhaltet dann das was eig. bewegen soll.. Egal, wie mache ich einen EventHandler?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
3 OOP erste Versuche, OOP zu verstehen. Probleme mit gettern und settern Java Basics - Anfänger-Themen 4
L Erste Schritte Erste Versuche mit Server und Client Java Basics - Anfänger-Themen 7
Farbenfroh Erste GUI Versuche Java Basics - Anfänger-Themen 1
MarvinsDepression Datentypen Generics: Erste Berührungen Java Basics - Anfänger-Themen 6
L Meine erste eigene Exception Klasse Java Basics - Anfänger-Themen 10
Zwanglos Warum wird nur die erste Zeile im while Block ausgeführt? Java Basics - Anfänger-Themen 8
F nur das erste Element mit iterator ausgeben Java Basics - Anfänger-Themen 5
J Objekt erste freie Stelle zuweisen Java Basics - Anfänger-Themen 3
Zrebna Compiler-Fehler Java-Compiler wird nach 'javac' keyword-Eingabe nicht gestartet (Erste Übung) Java Basics - Anfänger-Themen 18
Textsurfer Erste Schritte Ist es der erste Schleifendurchlauf? Java Basics - Anfänger-Themen 4
V Erste Schritte Hilfe gesucht beim einstieg in Java und erste Aufgaben aus der Berufsschule Java Basics - Anfänger-Themen 9
D String erste Zahl mit LKZ auslesen lassen Java Basics - Anfänger-Themen 36
C Erste Ziffer einer Zahl Java Basics - Anfänger-Themen 46
V Klassen Bestimmen Sie die erste und letzte Position an der ein 'c' steht? Java Basics - Anfänger-Themen 3
Crazynet jTable erste Zeile mit deffinierten Werten Java Basics - Anfänger-Themen 0
B Kreuzprodukt zweier Vektoren (Erste Java Aufgabe - Hilfestellungen und Tips erwünscht) Java Basics - Anfänger-Themen 4
Tarrew Generics: Erste gemeinse Oberklasse als Rückgabewert Java Basics - Anfänger-Themen 1
N InsertionSort sortiert erste Zahl im Array nicht mit? Java Basics - Anfänger-Themen 6
I String abschneiden erste und letzte Zeichen Java Basics - Anfänger-Themen 3
U Wie bekomme ich bei der Ausgabe das erste Komma weg Java Basics - Anfänger-Themen 8
S Erste App Java Basics - Anfänger-Themen 2
johnnydoe Erste Schritte Erster Blick - erste Fragen Java Basics - Anfänger-Themen 11
R Java als erste Programmiersprache 5 Auflage Java Basics - Anfänger-Themen 0
N Erste Zeile bei BufferedReader doppelt lesen? Java Basics - Anfänger-Themen 2
L Das erste Mal GridBagLayout - wie geht das? Java Basics - Anfänger-Themen 5
H Worauf bezieht sich die erste else-Anweisung Java Basics - Anfänger-Themen 9
E nur der erste (mehrerer Strings) wird ausgegeben Java Basics - Anfänger-Themen 15
C Meine erste Funktion Java Basics - Anfänger-Themen 12
O erste Loggingversuche Java Basics - Anfänger-Themen 12
A Meine erste Bibliothek erstellen Java Basics - Anfänger-Themen 24
A Mit javac zweite Datei compilieren ohne Erste erneut zu compilieren? Java Basics - Anfänger-Themen 7
P HILFE !!! erste aufgabe beim programmieren Java Basics - Anfänger-Themen 13
T Erste Programm Java Basics - Anfänger-Themen 9
T Das erste Programm starten Java Basics - Anfänger-Themen 27
L Erste Klasse Java Basics - Anfänger-Themen 12
P Textdatei auf erste Zeichenkette Prüfen... Java Basics - Anfänger-Themen 10
R Erste und zweite Stelle einer Eingabe auslesen Java Basics - Anfänger-Themen 2
M Meine erste Java Programmierung funzt nicht :-( Java Basics - Anfänger-Themen 34
U Erste Ziffer abspalten Java Basics - Anfänger-Themen 3
J Erste und letzte Zeile in txt Java Basics - Anfänger-Themen 3
J Erste OO-Aufgabe-Probleme mit Aufgabenstellung Java Basics - Anfänger-Themen 32
J Erste Gehvesuche Java Basics - Anfänger-Themen 3
C Erste GUI - Wie auswerten? Java Basics - Anfänger-Themen 3
B Das erste Programm . Java Basics - Anfänger-Themen 4
R Meine erste Klasse: Punkt Java Basics - Anfänger-Themen 3
L beim ersten compilen schon erste probleme Java Basics - Anfänger-Themen 8
G erste Schritte in Fenster und Grafik-Programmierung Java Basics - Anfänger-Themen 2
L JTabel abfragen ob es eine erste Zeile gibt? Java Basics - Anfänger-Themen 2
Q An erste Stelle in eine Queue eintragen Java Basics - Anfänger-Themen 4
C Generische Klassen, das erste Mal. Java Basics - Anfänger-Themen 8
J Neuling und erste Fragen Java Basics - Anfänger-Themen 8
R Erste Schritte,erste Class,Korrekturlesen und Verbesserungen Java Basics - Anfänger-Themen 3
T Erste Schritte (SEHR mühsam); Grafiktest Java Basics - Anfänger-Themen 5
D String, erste zeichen löschen Java Basics - Anfänger-Themen 6
J Threads: warten bis erste aktion ausgeführt wurde Java Basics - Anfänger-Themen 6
V Erste Ziffer aus einer dreistelligen "Zahl" heraus Java Basics - Anfänger-Themen 5
G Meine erste IF Abfrage Java Basics - Anfänger-Themen 11
A erste Schritte auf dem Weg eine XML-Datei zu parsen Java Basics - Anfänger-Themen 2
D Erste und letzte 3 Buchst. eines Str. in jeweils ein Array Java Basics - Anfänger-Themen 13
F Erste Schritte in Java - Wo finde ich Antworten? Referenzbib Java Basics - Anfänger-Themen 3
H Nur die erste Zeile einer Datei auslesen Java Basics - Anfänger-Themen 3
E Erste Schritte - warum läuft nur das eine? Java Basics - Anfänger-Themen 2
R Nur erste Zeile wird ausgelesen Java Basics - Anfänger-Themen 4
K Wortanzahl in erste Zeile schreiben Java Basics - Anfänger-Themen 6
W warum öffnet der nur die erste datei???? Java Basics - Anfänger-Themen 5
D erste spalte eines zweidimensionales Array sortieren ??!! Java Basics - Anfänger-Themen 2
N Hey Leute und zwar versuche ich gerade ein 2D Spiel zu Programmieren aber die Figur will sich nicht nach links oder rechts bewegen :( Java Basics - Anfänger-Themen 12
berserkerdq2 Habe eine Klasse, welche public ist, diese hat eine public Methode, die nicht static ist. Wenn ich nun versuche aufzurufen Probleme? Java Basics - Anfänger-Themen 8
E jProgressbar, 6 Versuche, welche value angeben ? Java Basics - Anfänger-Themen 3
Z Erste Schritte Versuche ein Labyrinth in einem Terminal zu erstellen, aber kann die properties Datei nicht einlesen Java Basics - Anfänger-Themen 3
M meine ersten versuche Java Basics - Anfänger-Themen 8
Kerstininer Vererbung Hilfe beim lernen von Objektorientierung für eine Klausur Java Basics - Anfänger-Themen 10
K Warum wird hier nur etwas in eine txt Datei geschrieben und nicht in alle drei (InputStream/OutputStream/Reader/Writer) Java Basics - Anfänger-Themen 1
I In unterschiedlichen Applikation Zugriff auf eine gemeinsame Anwendung? Java Basics - Anfänger-Themen 8
D 2 ArrayListen gleich sortieren bzw. eine Liste anhand einer anderen Sortieren Java Basics - Anfänger-Themen 6
T Ich brauche eine Schleife die eine beliebige Zahl so lange durch 10 teilt bis zur Null Java Basics - Anfänger-Themen 5
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
J Eine konzeptionelle Frage zu OOP Java Basics - Anfänger-Themen 3
N Ich kriege ganze zeit die Fehlermeldung "Inhalt der Zwischenablage kann nicht in die ausgewählten Elemente eingefügt werden" hat jemand eine Lösung? Java Basics - Anfänger-Themen 6
M Vergleichen, ob eine Liste länger als andere ist Java Basics - Anfänger-Themen 6
T Methode soll etwas ausrechnen und zurückgeben (klappt nd) hat wer eine Idee? Java Basics - Anfänger-Themen 11
Shadowrunner Variablen Gibt es eine Möglichkeit die Ziffern/Stellen einer Zahl fest zu legen? Java Basics - Anfänger-Themen 3
Kingdako Wie löse ich eine Mathematische Formel mit Arrays und Schleifen? Java Basics - Anfänger-Themen 32
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
G Wie wartet man bis ein URL eine Antwort zurückgibt? Java Basics - Anfänger-Themen 5
berserkerdq2 Intelij, wie kann ich einstellen, dass die aktuelle Klasse ausgeführt wird, wenn ich aufs Startsymbol drücke, gibts da eine Tastenkombination? Java Basics - Anfänger-Themen 11
S 2 Reihen ratio-btn, eine Reihe funktioniert andere nicht Java Basics - Anfänger-Themen 4
T Eingabe durch eine Zahl dividieren nachgucken? Java Basics - Anfänger-Themen 4
M mit Maven eine ausführbare Jar bauen Java Basics - Anfänger-Themen 7
P Java Selenium . Parameterized.Parameters erzeugt eine Fehlermeldung Java Basics - Anfänger-Themen 14
J Zugriff auf eine 2. Klasse die per UI-Designer erstellt wurde Java Basics - Anfänger-Themen 1
M Eine Funktion zuweisen Java Basics - Anfänger-Themen 3
J Eine theoretische Frage zur Praxis - JPanel oder Canvas Java Basics - Anfänger-Themen 5
A Methoden Guten Tag , ich wollte so machen dass wenn meine frog an eine fly/bee geht dann an meine Tafel geht der zahl +1 hoch. Java Basics - Anfänger-Themen 2
A Wie führe ich eine Batch-Datei von meiner Java-Anwendung aus? Java Basics - Anfänger-Themen 18
J Beim Start des Programms zB. eine Linie in JPanel ausgeben Java Basics - Anfänger-Themen 4
L Methoden Eine Methode um zu testen ob es ein Nachbar gibt Java Basics - Anfänger-Themen 10
S Eine Idee umsetzen ganz schnell!? Java Basics - Anfänger-Themen 68
I Grundsatzfrage: Belegt eine Referenz auf 'null' RAM, und wenn ja - wieviel ;-) ? Java Basics - Anfänger-Themen 5
jeff98 Wie kann man in Java eine Zeichenformation ausgeben? Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben