Wie am besten die Verarbeitung der Eingabe verzögern ?

Status
Nicht offen für weitere Antworten.

Cola_Colin

Top Contributor
Situation: Ich habe ein kleines 2D Spiel, das mit einer ArrayList aus den Objekten des Spieles arbeitet, diese werde alle ~16ms durchlaufen und eben bearbeitet. Nun hab ich auf dem JPanel des Spieles Mouse- und Key-Listener. Diese sollen nun die Eingaben verarbeiten. Dies ist an sich kein Problem, aber wenn ich nun bei der Verabeitung einer Eingabe etwas an der ArrayList ändere, dann krieg ich früher oder später eine ConcurrentModificationException von den For each schleifen, die die Objekte durchlaufen. Wieso das passiert ist klar, die Anzahl der Objekte in der ArrayList ändern sich, was der Iterator nicht so toll findet. Wie umgehe ich das am besten ?
Ich muss dazu wohl die Eingabe dann abarbeiten, wenn er sich nicht in den schleifen befindet. Nur wie koordiniere ich das ? Eine Idee wäre, bei einer Eingabe nichts direkt zu machen, nur die Eingabe irgendwie abzuspeichern und dann in einem Schritt der Spielschleife auszuführen. Aber wie kann ich alle Befehle auch wirklich abspeichern ?
Oder kann man das irgendwie anders lösen ?
 

H2SO3-

Bekanntes Mitglied
kannst du nicht, wenn du änderungen in der Arraylist machst den Timer ausschalten und anschließend wieder anschalten?
 

Cola_Colin

Top Contributor
Es ist ein Thread. Mal einlesen wie man den temporär stilllegt... Mensch auf die Idee hätte ich auch selber kommen können -.-

EDIT: Wobei, wenn ich mir das so überlege. Gerade bei Mousemove dürfte es Probleme geben, den Thread bei jeder Mausbewegung zu pausieren... Tastendrücke könnten ähnlich Problematisch sein.
 
Zuletzt bearbeitet:

Cola_Colin

Top Contributor
Ja Vector wäre einmal machbar, das funzt auch.
Aber ich hab gelesen, der wäre so alt, also hab ichs noch anders probiert.

Naja nur das klappt einfach nicht.
Java:
		//Zeiche alle Objekte
		List<DrawObj> syncList = Collections.synchronizedList(gameObjects); 
		synchronized (syncList) {
			for (DrawObj o: syncList) {  //Hier gibts java.util.ConcurrentModificationException
				o.drawIt(g);
			}			
		}

Was ist da falsch ?
Und muss man die Liste eigentlich immer neuerstellen vor dem itarieren oder kann ich diese synchroneListe auch als Feld einführen, das ich nur einmal mit Collections.synchronizedList festlege ?

ich weiß, ich könnte einfach den Vector nehmen, aber jetzt interssiert mich einfach, wo hier der Fehler liegt ;)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Datentypen Wie am Besten abspeichern Java Basics - Anfänger-Themen 1
S Wie debugge ich dies am besten: SingleThreadExecutor führt Task nicht aus..? Java Basics - Anfänger-Themen 29
julian-fr Wie kann ich am besten Java lernen? Java Basics - Anfänger-Themen 17
belana wie am besten 2D Array von String to Integer Java Basics - Anfänger-Themen 18
Salvatore321 Wie kann ich dieses Zustandsdiagramm am besten Umsetzen? Java Basics - Anfänger-Themen 5
dieter000 Hilfe bei dem Beispiel, wie gehe ich sowas am besten an? Java Basics - Anfänger-Themen 32
M konzeptuelle Frage: In welcher Klasse definiert man am Besten Methoden, die die Kommunikation mit dem User regeln? Java Basics - Anfänger-Themen 8
I Wo am besten eine String Konstante initialisieren? Java Basics - Anfänger-Themen 5
A Wie sollte ich es am besten an gehen - denkweise Java Basics - Anfänger-Themen 48
E Erste Schritte Java Webeintwicklung (JSP/Servlet), wie am Besten einsteigen? Java Basics - Anfänger-Themen 0
V welche Methode am besten sich für JPG einfügung in Java anzugewöhnen ? Java Basics - Anfänger-Themen 4
I Grafische Benutzeroberflächen - welche Komponente nehme ich am besten? Java Basics - Anfänger-Themen 13
DStrohma Best Practice Wie setze ich Suchparameter am besten? Java Basics - Anfänger-Themen 3
J Wie handle ich Threads am besten? Java Basics - Anfänger-Themen 2
H Wo speichert man am besten Daten? Appdata? Java Basics - Anfänger-Themen 14
B Datentypen Wie Daten am besten organisieren? Java Basics - Anfänger-Themen 7
M wie kann ich am besten die kleinste 2 elemente von einer Liste kriegen Java Basics - Anfänger-Themen 4
S Wie kann man am besten programmieren erlernen? Java Basics - Anfänger-Themen 32
P OOP Wie schreib ich dieses Programm am besten? Java Basics - Anfänger-Themen 6
B Wie lerne ich am besten? Java Basics - Anfänger-Themen 7
C Wie Objekte am besten anklickbar machen ? Java Basics - Anfänger-Themen 9
H Wie lerne ich am Besten Java Java Basics - Anfänger-Themen 28
K OPP am besten verstehen !!! Java Basics - Anfänger-Themen 7
S Wie ereuge ich hier am besten eine Schleife Java Basics - Anfänger-Themen 12
D Logging sätmlicher Vorgänge, wie am besten realisieren? Java Basics - Anfänger-Themen 6
A wie lernt man am besten den code zu verstehen? Java Basics - Anfänger-Themen 7
G wo speichert man am besten eine Datei? Java Basics - Anfänger-Themen 4
A Welches GUI nutze ich am Besten? Java Basics - Anfänger-Themen 7
B mit was am besten speichern und abrufen?+ fenster in fenster Java Basics - Anfänger-Themen 4
G Massenersetzungen am besten auch mit replaceAll? Java Basics - Anfänger-Themen 3
F Anfänger - die besten Tipps Java Basics - Anfänger-Themen 3
G Wann am besten getSize() aufrufen? Java Basics - Anfänger-Themen 6
S Wie am besten JAVA lernen Java Basics - Anfänger-Themen 12
D Fehlerbehandlungen, wie am besten sinnvoll einsetzen? Java Basics - Anfänger-Themen 6
S schwieriger String für StringTokenizer, wie am Besten ? Java Basics - Anfänger-Themen 8
frau-u guter Stil - wie macht mans am Besten? Java Basics - Anfänger-Themen 8
A Wie fange ich am besten mit nem Programm an? Java Basics - Anfänger-Themen 10
berserkerdq2 Findet eine parallele Verarbeitung in Java bei Threads erst statt, wenn man die Methoden auch synchronized? Und wie sieht bei Conditions aus? Java Basics - Anfänger-Themen 8
A Java, verarbeitung eines xml-files Java Basics - Anfänger-Themen 2
O Knoten und Liste verarbeitung Java Basics - Anfänger-Themen 20
C Verarbeitung von sehr großen Dateien Java Basics - Anfänger-Themen 52
P Variablen Abfangen von eingaben per java.util.Scanner und weiter Verarbeitung Java Basics - Anfänger-Themen 7
M Zeitgemäße Verarbeitung von Datumswerten in Java Java Basics - Anfänger-Themen 1
Z Objekte in der Verarbeitung stoppen Java Basics - Anfänger-Themen 2
S Arrays - Fehler bei der Verarbeitung: For input string: "Berlin" Java Basics - Anfänger-Themen 14
G Frage zur Verarbeitung einer JSP Java Basics - Anfänger-Themen 4
G via Reflections art der verarbeitung der parameter prüfen Java Basics - Anfänger-Themen 11
H Verarbeitung von Zeichenketten Java Basics - Anfänger-Themen 8
D Problem mit der Verarbeitung eines ActionEvents Java Basics - Anfänger-Themen 7
S Bitweise Verarbeitung? Java Basics - Anfänger-Themen 7
8 Hilfe bei Trennung von GUI und Verarbeitung Java Basics - Anfänger-Themen 12
S Verarbeitung 2er KeyEvents gleichzeitig Java Basics - Anfänger-Themen 2
Torschti Eingabe von Dezimalzahlen (bis zu zwei Kommastellen) Java Basics - Anfänger-Themen 11
T User input in Verbindung mit ChronoUnit anpassen und falls falsche Eingabe getätigtwird Java Basics - Anfänger-Themen 7
T Eingabe durch eine Zahl dividieren nachgucken? Java Basics - Anfänger-Themen 4
T sortierung der eingabe nach größe Java Basics - Anfänger-Themen 5
Ostkreuz Int Scanner auf Enter Eingabe prüfen Java Basics - Anfänger-Themen 4
G Programm läuft durch, ohne Eingabe aus dem Chat abzuwarten Java Basics - Anfänger-Themen 4
Jul1n4tor Scanner error bei Eingabe die kein Integer ist Java Basics - Anfänger-Themen 4
S Größte Zahl nach Eingabe der Zahl 0 ausgeben Java Basics - Anfänger-Themen 6
M Dialogbox sofort neustarten, falls aktuelle Eingabe falsch Java Basics - Anfänger-Themen 11
M Dialogbox solange abfragen, bis gültige Wert-Eingabe Java Basics - Anfänger-Themen 12
S OOP Java Eingabe in verschiedene Datenbank Tabellen eintragen Java Basics - Anfänger-Themen 7
A Bei VierGewinnt Eingabe per Buchstabe (a,b,c...) Java Basics - Anfänger-Themen 2
java-starter Erste Schritte Eingabe in Char wert umwandeln Java Basics - Anfänger-Themen 7
Lion.King Subtraktion nach Eingabe im Terminal Java Basics - Anfänger-Themen 7
X Erste Schritte Scanner eingabe wird übersprungen Java Basics - Anfänger-Themen 4
L Dauerhaftes Speichern einer Eingabe bei einer ArrayList Java Basics - Anfänger-Themen 26
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 0
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 5
J Mein Programm läuft bei der ersten Eingabe nicht mehr weiter, woran liegt das? Java Basics - Anfänger-Themen 6
M Eingabe limit Java Basics - Anfänger-Themen 8
brypa Programm mit Eingabe Java Basics - Anfänger-Themen 129
C Potenzberechnung über switch case. Taschenrechner mit Eingabe über einen grafischen Dialog Java Basics - Anfänger-Themen 22
D falsche eingabe erkennen Java Basics - Anfänger-Themen 2
H Eingabe tätigen bevor Graphics g Fenster öffnet Java Basics - Anfänger-Themen 5
H For-Schleife bis Index von Eingabe laufen lassen Java Basics - Anfänger-Themen 24
Hamudi Bachir 2D Array eingabe vom Benutzer Java Basics - Anfänger-Themen 31
S Warum erscheint bei mir "Hallo Welt" und nicht die aktuelle Eingabe? Java Basics - Anfänger-Themen 16
J Jtable Eingabe nach Klick ausserhalb der Tabelle übernehmen Java Basics - Anfänger-Themen 6
B Array bei jeder Eingabe um eins erweitern Java Basics - Anfänger-Themen 3
TimoN11 IntelliJ , Ausgabe von einem Quellcode in Eingabe eines Quellcodes Java Basics - Anfänger-Themen 1
M Nach einer erstmaligen Eingabe, eine zweite Eingabe nur noch gegen bestätigung möglich Java Basics - Anfänger-Themen 2
chocobear26 Interface JOptionPane - Dialog_Fenster zeigt immer vorherige Eingabe an. Java Basics - Anfänger-Themen 4
E JavaFX Taschenrechner Eingabe im Textfield beschränken Java Basics - Anfänger-Themen 2
M Regex nur Zahlen und Punkt zulassen, Keine Eingabe(Leeres TextFeld) nicht zulassen Java Basics - Anfänger-Themen 6
M JTextField nur Zahleneingaben zulassen, eingabe sperren Java Basics - Anfänger-Themen 24
E Timer trotz erwartender Eingabe durchlaufen lassen Java Basics - Anfänger-Themen 11
K falsche Eingabe abfangen Java Basics - Anfänger-Themen 8
N Eingabe erkennen, ob groß oder kleingeschrieben worden ist Java Basics - Anfänger-Themen 22
N Fehlerausgabe bei falscher Eingabe der Users Java Basics - Anfänger-Themen 3
N Eingabe des Users direkt hinter die Ausgabe Java Basics - Anfänger-Themen 3
N Eingabe Kommazahlen über Scanner Java Basics - Anfänger-Themen 2
O Mehrfache Scanner-Eingabe durch Komma getrennt Java Basics - Anfänger-Themen 6
M String array durch Eingabe begrenzen Java Basics - Anfänger-Themen 7
iman Eingabe von Benutzer Filter machen. Java Basics - Anfänger-Themen 7
M Input/Output JTextField Eingabe in String Variable speichern Java Basics - Anfänger-Themen 15
D Eingabe einscannen, ohne vorher einen Datentypen anzugeben? Java Basics - Anfänger-Themen 1
M Verschiedene Eingabe = Verschiedene Ausgaben Java Basics - Anfänger-Themen 5
H Eingabe Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben