Problem mit Methode und Timer

D

delpiero223

Gast
Hallo,
nach der etwas dämlichen Frage gestern, da ich beim Copy-Pasten einfach etwas übersehen hatte, folgt jetzt mal ein Problem, an welchem sogar der AzuBi hier in der Firma, in der ich Schulpraktikum mache 45 Minuten probiert hat und zu keiner Lösung des Problems gekommen ist.

Und zwar läuft mein Pong-Spiel an sich mittlerweile schon einwandfrei, sodass ich noch ein bisschen mit dem Farbmenü rumgespielt habe: Dort habe ich jetzt nämlich noch eine Möglichkeit für wechselnde Farben des Schlägers und des Balls eingebaut, welche aber nicht so funktioniert, wie sie es soll.

Und zwar rufe ich in einem Menü die Klicks auf einen Punkt an, die in der Klasse "MyActionListener" verarbeitet werden. So sieht das Ganze erst mal aus:

Java:
		if (e.getActionCommand().equalsIgnoreCase("farbwechsel1")) {
			geschwindigkeit = 1;
			farbeWechseln = true;
			Farbe_wechseln();
		}

		if (e.getActionCommand().equalsIgnoreCase("farbwechsel2")) {
			geschwindigkeit = 50;
			farbeWechseln = true;
			Farbe_wechseln();
		}

		if (e.getActionCommand().equalsIgnoreCase("farbwechsel3")) {
			geschwindigkeit = 150;
			farbeWechseln = true;
			Farbe_wechseln();
		}

		if (e.getActionCommand().equalsIgnoreCase("farbwechsel4")) {
			geschwindigkeit = 500;
			farbeWechseln = true;
			Farbe_wechseln();
		}

		if (e.getActionCommand().equalsIgnoreCase("farbwechsel5")) {
			geschwindigkeit = 5000;
			farbeWechseln = true;
			Farbe_wechseln();
		}

Stellt man nur eine Farbe ein, wird der Boolean farbeWechseln == false gesetzt, (was leider nicht richtig funktioniert). Bei einem Farbwechsel wird dann die Methode Farbe_wechsen aufgerufen und die geschwindigkeit für das Wechseln der Farbe übergeben. Die Methode sieht so aus:

Java:
	public void Farbe_wechseln() {
		TimerTask timerTask = new TimerTask() {
			public void run() {
				if (farbeWechseln == true) {
					zufallszahl = (int) (Math.random() * 7 + 1);
					switch (zufallszahl) {
					case 1:
						Renderer.farbe = Color.white;
						Farbe_wechseln();
						break;
					case 2:
						Renderer.farbe = Color.cyan;
						Farbe_wechseln();
						break;
					case 3:
						Renderer.farbe = Color.green;
						Farbe_wechseln();
						break;
					case 4:
						Renderer.farbe = Color.yellow;
						Farbe_wechseln();
						break;
					case 5:
						Renderer.farbe = Color.blue;
						Farbe_wechseln();
						break;
					case 6:
						Renderer.farbe = Color.magenta;
						Farbe_wechseln();
						break;
					case 7:
						Renderer.farbe = Color.red;
						Farbe_wechseln();
						break;
					}
				}
			}
		};

		timer.schedule(timerTask, geschwindigkeit);

	}

Das mit dem Boolean habe ich eben erst schnell eingebaut. Es funktioniert aber genau so wenig wie der Rest: Beim ersten Mal klappt das Umstellen zwar korrekt, ändert man danach jedoch die Geschwindigkeit für den Timer, so laufen beide Funktionen jedoch nur parallel ab, wodurch das schnelle Wechseln erhalten bleibt. Auch, wenn der Boolean-Wert "false" ist, ignoriert die Funktion das.

Weiß jemand Rat?
 
D

delpiero223

Gast
Und wie soll das funktionien? timer.stop() funktioniert zumindest nicht und für die Java-Hilfe bin ich anscheiennd zu blöd :D
 
D

delpiero223

Gast
Edit geht leider nicht als Gast, daher: mit "return" habe ich schon alles durchprobiert, hat auch nicht geklappt.
 

Crian

Top Contributor
[EDIT]Du musst dir den laufenden Timer natürlich merken. Ob du den TimerTask jedes Mal wieder neu anlegen musst, ist auch noch die Frage.[/EDIT]

Vermutlich suchst du dann [c]timer.cancel()[/c]. Danach kannst du vermutlich den selben timer wiederverwenden, um erneut zu schedulen. Also reicht vielleicht einfach
Code:
timer.cancel();
zu Beginn deiner Methode
Code:
Farbe_wechseln()
.

[TIPP]Die sollte anders heißen. Methodennamen sollten nach Möglichkeit mit einem Verb beginnen und außerdem den Javakonventionen genügen.
Code:
wechsleFarbe()
oder noch besser
Code:
changeColor()
wäre ein besserer Name.

Allerdings sollte ein Methodenname auch ausdrücken, was in der Methode passiert.
Code:
startColorChangeTimer()
ist zwar unhandlich, sagt aber, was hier passiert.[/TIPP]
 
Zuletzt bearbeitet:
D

delpiero223

Gast
Danke schon einmal für Antwort(en). Wo bzw. wie soll ich das dann einbauen, damit es wie erwähnt funktioniert. Wenn ich es in die ActionListener integriere, kommt ja "IllegalStateexception", wenn ich vorher noch keinen Timer gestartet habe.

Sorry für die blöden Fragen.
 

Crian

Top Contributor
Probiere es mal so:

Java:
	public void Farbe_wechseln() {
		TimerTask timerTask = new TimerTask() {
			public void run() {
				if (farbeWechseln == true) {
					zufallszahl = (int) (Math.random() * 7 + 1);
					switch (zufallszahl) {
					case 1:
						Renderer.farbe = Color.white;
						Farbe_wechseln();
						break;
					case 2:
						Renderer.farbe = Color.cyan;
						Farbe_wechseln();
						break;
					case 3:
						Renderer.farbe = Color.green;
						Farbe_wechseln();
						break;
					case 4:
						Renderer.farbe = Color.yellow;
						Farbe_wechseln();
						break;
					case 5:
						Renderer.farbe = Color.blue;
						Farbe_wechseln();
						break;
					case 6:
						Renderer.farbe = Color.magenta;
						Farbe_wechseln();
						break;
					case 7:
						Renderer.farbe = Color.red;
						Farbe_wechseln();
						break;
					}
				}
			}
		};

		timer.cancel();
		timer.schedule(timerTask, geschwindigkeit);

	}


Neu ist nur die Zeile 40.

[EDIT]Wenn du ein minimales, lauffähiges Beispiel erstellst, probiere ich auch gern mit daran herum.[/EDIT]
 
Zuletzt bearbeitet:
D

delpiero223

Gast
Vielen Dank auch noch mal für den Nachtrag von dir. Zu Beginn der Methode kann ich es ja nicht setzen, da zu Beginn noch kein Timer definiert ist und dann wieder der Fehler "Timer already cancelled" erscheint.

Ich habe es hier immer so gemacht, dass ich Methoden groß geschrieben habe, ist aber heute sowieso mein letzter Tag hier. Trotzdem versuche ich mich dann natürlich, daran so halten ,wenn es denn so üblich ist.

Wie soll ich es denn sonst machen, wenn ich den Timertask nicht immer neu definiere?

Grüße,
Peer
 

Crian

Top Contributor
Ich seh leider nicht, wo du den timer erstellst. Sonst ginge es vielleicht auch so:

Java:
    public void Farbe_wechseln() {
        TimerTask timerTask = new TimerTask() { ... };
 
        if (null != timer) {
            timer.cancel();
            timer = null;
        }
        timer = new Timer();
        timer.schedule(timerTask, geschwindigkeit);
    }

Da fehlt mir trotz nochmaliger Lektüre zum Thema Timer / TimerTask die Erfahrung und ein Beispiel zum probieren.
 
D

delpiero223

Gast
Und schon wieder muss ich doppelposten. Der Code in der 40. Zeile klappt ja nicht, da beim ersten Aufruf der Methode noch kein Timer gesetzt ist.

Was meinst du mit dem laufenden Beispiel?
 

Crian

Top Contributor
Wie soll ich es denn sonst machen, wenn ich den Timertask nicht immer neu definiere?

Dann müsstest du den Task einmal erstellen und immer wieder in den Timer einsetzen. Ich bin mir nicht wirklich sicher, ob es besser ist, weil man eine "globale" Variable, nämlich den Task, mehr mit sich rum schleppt. Die Alternative sähe dann so aus:

Java:
 private TimerTask timerTask;

    private TimerTask defineColorChangeTimerTask() {
        TimerTask timerTask = new TimerTask() {
            public void run() {
                if (farbeWechseln == true) {
                    zufallszahl = (int) (Math.random() * 7 + 1);
                    switch (zufallszahl) {
                    case 1:
                        Renderer.farbe = Color.white;
                        Farbe_wechseln();
                        break;
                    case 2:
                        Renderer.farbe = Color.cyan;
                        Farbe_wechseln();
                        break;
                    case 3:
                        Renderer.farbe = Color.green;
                        Farbe_wechseln();
                        break;
                    case 4:
                        Renderer.farbe = Color.yellow;
                        Farbe_wechseln();
                        break;
                    case 5:
                        Renderer.farbe = Color.blue;
                        Farbe_wechseln();
                        break;
                    case 6:
                        Renderer.farbe = Color.magenta;
                        Farbe_wechseln();
                        break;
                    case 7:
                        Renderer.farbe = Color.red;
                        Farbe_wechseln();
                        break;
                    }
                }
            }
        };

        return timerTask;
    }

    public void Farbe_wechseln() {
        if (null == timerTask) {
            timerTask = defineColorChangeTimerTask();
        }

        // .... timer starten siehe oben

    }
 
D

delpiero223

Gast
Ob das besser ist, bin ich mir auch nicht sicher. Aber dies dürfte doch eigentlich nichts mit dem Problem zu tun haben, oder?

Ich bin beim Versuch, ein kleines, lauffähiges Problem mit der Thematik zu erstellen leider gescheitert, daher lade ich dir das ganze Pong-Programm jetzt einfach mal als zip-Datei hoch.

Hier ist es:

Desktop.zip

Es dürfte in Eclipse direkt zu importieren sein. Vor dem Start muss leider noch die Schriftart im Renderer umgestellt oder die Beigelegte installiert werden
 

Crian

Top Contributor
Ich hab auch mal herumexperimentiert, man muss den TimerTask neu definieren, da man sonst den Fehler [c]Task already scheduled or cancelled[/c] bekommt.
 

Crian

Top Contributor
Vielen Dank für das zur Verfügung Stellen des Codes. Ich hatte jetzt aber schon selbst ein Beispiel gebastelt:

[java=3]import java.awt.Color;
import java.util.Timer;
import java.util.TimerTask;

public class TimerTaskTest {

public class Renderer {
public Color farbe;
}

private boolean farbeWechseln;
private int zufallszahl;
private int geschwindigkeit;
private Timer timer;
private final Renderer renderer;
private TimerTask timerTask;

public TimerTaskTest() {
zufallszahl = 0;
geschwindigkeit = 1000;
renderer = new Renderer();
farbeWechseln = true;

boolean running = true;
while (running) {
System.out.println("Geschwindigkeit ist " + geschwindigkeit);
changeColor();
sleep(5000);
geschwindigkeit -= 100;
if (geschwindigkeit < 1) {
running = false;
}
}
if (null != timer) {
timer.cancel();
timer = null;
}
}

private void sleep(long sleepingTime) {
try {
Thread.sleep(sleepingTime);
}
catch (InterruptedException e) {
e.printStackTrace();
}
}

private TimerTask defineColorChangeTimerTask() {
TimerTask timerTask = new TimerTask() {
public void run() {
if (farbeWechseln == true) {
zufallszahl = (int) (Math.random() * 7 + 1);
switch (zufallszahl) {
case 1:
renderer.farbe = Color.white;
changeColor();
break;
case 2:
renderer.farbe = Color.cyan;
changeColor();
break;
case 3:
renderer.farbe = Color.green;
changeColor();
break;
case 4:
renderer.farbe = Color.yellow;
changeColor();
break;
case 5:
renderer.farbe = Color.blue;
changeColor();
break;
case 6:
renderer.farbe = Color.magenta;
changeColor();
break;
case 7:
renderer.farbe = Color.red;
changeColor();
break;
}
}
System.out.println("Farbe gesetzt auf " + renderer.farbe);
}
};

return timerTask;
}

public void changeColor() {
timerTask = defineColorChangeTimerTask();
if (null != timer) {
timer.cancel();
timer = null;
}
timer = new Timer();
timer.schedule(timerTask, geschwindigkeit);
}

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

}
[/code]

Ausgabe:

Code:
Geschwindigkeit ist 1000
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=0]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=0]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=255]
Geschwindigkeit ist 900
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=0]
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=255]
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=0]
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=255]
Geschwindigkeit ist 800
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=0]
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=0]
Farbe gesetzt auf java.awt.Color[r=0,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=0,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=0]
Geschwindigkeit ist 700
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=0]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=0]
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=255]
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=255]
Geschwindigkeit ist 600
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=0]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=255]
Farbe gesetzt auf java.awt.Color[r=0,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=0,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=0]
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=255]
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=0]
Geschwindigkeit ist 500
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=255]
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=255]
Farbe gesetzt auf java.awt.Color[r=0,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=0,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=0]
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=255]
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=0]
Farbe gesetzt auf java.awt.Color[r=0,g=0,b=255]

und so weiter. Allerdings bekomme ich darunter mitten drin noch eine

Code:
Exception in thread "main" java.lang.IllegalStateException: Task already scheduled or cancelled
	at java.util.Timer.sched(Unknown Source)
	at java.util.Timer.schedule(Unknown Source)
	at threads.TimerTaskTest.changeColor(TimerTaskTest.java:101)
	at threads.TimerTaskTest.<init>(TimerTaskTest.java:29)
	at threads.TimerTaskTest.main(TimerTaskTest.java:105)
 
D

delpiero223

Gast
Hm... mich musst du nicht fragen, ich habe keine Ahnung davon :D

Ich bin mal 30 Minuten weg, bis denne.
 

Crian

Top Contributor
Ah! Du rufst immer wieder
Code:
Farbe_wechseln()
aus dem
Code:
TimerTask
auf!

So sieht es besser aus:

[JAVA=3]import java.awt.Color;
import java.util.Timer;
import java.util.TimerTask;

public class TimerTaskTest {

public class Renderer {
public Color farbe;
}

private boolean farbeWechseln;
private int zufallszahl;
private int geschwindigkeit;
private Timer timer;
private final Renderer renderer;

public TimerTaskTest() {
zufallszahl = 0;
geschwindigkeit = 1000;
renderer = new Renderer();
farbeWechseln = true;

boolean running = true;
while (running) {
System.out.println("Geschwindigkeit ist " + geschwindigkeit);
changeColor();
sleep(5000);
geschwindigkeit -= 100;
if (geschwindigkeit < 1) {
running = false;
}
}
if (null != timer) {
timer.cancel();
timer = null;
}
}

private void sleep(long sleepingTime) {
try {
Thread.sleep(sleepingTime);
}
catch (InterruptedException e) {
e.printStackTrace();
}
}

private TimerTask defineColorChangeTimerTask() {
System.out.println("defineColorChangeTimerTask() start mit Geschwindigkeit " + geschwindigkeit);
TimerTask timerTask = new TimerTask() {
public void run() {
if (farbeWechseln == true) {
zufallszahl = (int) (Math.random() * 7 + 1);
switch (zufallszahl) {
case 1:
renderer.farbe = Color.white;
break;
case 2:
renderer.farbe = Color.cyan;
break;
case 3:
renderer.farbe = Color.green;
break;
case 4:
renderer.farbe = Color.yellow;
break;
case 5:
renderer.farbe = Color.blue;
break;
case 6:
renderer.farbe = Color.magenta;
break;
case 7:
renderer.farbe = Color.red;
break;
}
}
System.out.println("Farbe gesetzt auf " + renderer.farbe);
}
};

return timerTask;
}

public void changeColor() {
System.out.println("changeColor() Start mit Geschwindigkeit " + geschwindigkeit);
if (null != timer) {
timer.cancel();
timer = null;
}
timer = new Timer();
timer.scheduleAtFixedRate(defineColorChangeTimerTask(), 0, geschwindigkeit);
}

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

}
[/code]

Ausgabe:

Code:
Geschwindigkeit ist 1000
changeColor() Start mit Geschwindigkeit 1000
defineColorChangeTimerTask() start mit Geschwindigkeit 1000
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=255]
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=0]
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=255]
Geschwindigkeit ist 900
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=255]
changeColor() Start mit Geschwindigkeit 900
defineColorChangeTimerTask() start mit Geschwindigkeit 900
Farbe gesetzt auf java.awt.Color[r=0,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=0]
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=0]
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=0]
Geschwindigkeit ist 800
changeColor() Start mit Geschwindigkeit 800
defineColorChangeTimerTask() start mit Geschwindigkeit 800
Farbe gesetzt auf java.awt.Color[r=0,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=255]
Farbe gesetzt auf java.awt.Color[r=0,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=0]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=0]
Farbe gesetzt auf java.awt.Color[r=0,g=0,b=255]
Geschwindigkeit ist 700
changeColor() Start mit Geschwindigkeit 700
defineColorChangeTimerTask() start mit Geschwindigkeit 700
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=0]
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=0]
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=0]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=0]
Farbe gesetzt auf java.awt.Color[r=0,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=255]
Geschwindigkeit ist 600
changeColor() Start mit Geschwindigkeit 600
defineColorChangeTimerTask() start mit Geschwindigkeit 600
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=255]
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=0]
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=0]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=0]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=0]
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=0]
Geschwindigkeit ist 500
changeColor() Start mit Geschwindigkeit 500
defineColorChangeTimerTask() start mit Geschwindigkeit 500
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=0]
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=255]
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=0]
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=0]
Farbe gesetzt auf java.awt.Color[r=0,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=0,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=0,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=255]
Geschwindigkeit ist 400
Farbe gesetzt auf java.awt.Color[r=0,g=0,b=255]
changeColor() Start mit Geschwindigkeit 400
defineColorChangeTimerTask() start mit Geschwindigkeit 400
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=0]
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=0]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=255]
Farbe gesetzt auf java.awt.Color[r=0,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=0]
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=0]
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=0]
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=0]
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=255]
Geschwindigkeit ist 300
changeColor() Start mit Geschwindigkeit 300
defineColorChangeTimerTask() start mit Geschwindigkeit 300
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=0]
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=0]
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=0]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=0]
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=255]
Farbe gesetzt auf java.awt.Color[r=0,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=0]
Farbe gesetzt auf java.awt.Color[r=0,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=0]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=0]
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=0]
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=255]
Geschwindigkeit ist 200
changeColor() Start mit Geschwindigkeit 200
defineColorChangeTimerTask() start mit Geschwindigkeit 200
Farbe gesetzt auf java.awt.Color[r=0,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=0]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=0]
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=0]
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=255]
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=0]
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=0]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=0]
Farbe gesetzt auf java.awt.Color[r=0,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=255]
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=0]
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=0,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=0]
Farbe gesetzt auf java.awt.Color[r=0,g=0,b=255]
Geschwindigkeit ist 100
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=255]
changeColor() Start mit Geschwindigkeit 100
defineColorChangeTimerTask() start mit Geschwindigkeit 100
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=0]
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=0]
Farbe gesetzt auf java.awt.Color[r=0,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=0]
Farbe gesetzt auf java.awt.Color[r=0,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=0,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=0]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=0]
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=0]
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=0]
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=0]
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=0]
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=255]
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=0]
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=0]
Farbe gesetzt auf java.awt.Color[r=0,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=0]
Farbe gesetzt auf java.awt.Color[r=0,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=0]
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=255]
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=0]
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=0]
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=0]
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=0]
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=0]
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=0]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=0]
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=255]
Farbe gesetzt auf java.awt.Color[r=0,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=0,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=0,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=0,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=0]
Farbe gesetzt auf java.awt.Color[r=255,g=255,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=255]
Farbe gesetzt auf java.awt.Color[r=255,g=0,b=0]
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=0]
Farbe gesetzt auf java.awt.Color[r=0,g=255,b=0]

Ist das das, was du erwartest?

[tipp]Was habe ich geändert?

1) die Aufrufe von
Code:
Farbe_wechseln()
bzw.
Code:
changeColor()
aus dem TimerTask entfernt.
2) timer jedes Mal neu erstellen. Alten Timer vorher beenden, falls vorhanden, siehe
Java:
        if (null != timer) {
            timer.cancel();
            timer = null;
        }
        timer = new Timer();
3)
Code:
timer.scheduleAtFixedRate(defineColorChangeTimerTask(), 0, geschwindigkeit);
anstelle von
Code:
timer.schedule(defineColorChangeTimerTask(), geschwindigkeit);
verwendet.

Der Rest ist Kosmetik[/tipp]
 
Zuletzt bearbeitet:
D

delpiero223

Gast
Vielen Dank für die Mühen, das sieht schon mal sehr gut aus. Leider bekomme ich es nun nicht vernünftig hin, den Code in meine Klasse zu bekommen, da der Aufbau deines Quelltextes ja fast komplett anders ist als mein bescheidener Code es war.
 

Crian

Top Contributor
Dafür hab ich den grünen Kasten unten ergänzt, wo ich die wesentlichen Änderungen erläutert habe.

Also versuchsweise etwa so:

Java:
    public void Farbe_wechseln() {
        TimerTask timerTask = new TimerTask() {
            public void run() {
                if (farbeWechseln == true) {
                    zufallszahl = (int) (Math.random() * 7 + 1);
                    switch (zufallszahl) {
                    case 1:
                        Renderer.farbe = Color.white;
                        //Farbe_wechseln();
                        break;
                    case 2:
                        Renderer.farbe = Color.cyan;
                        //Farbe_wechseln();
                        break;
                    case 3:
                        Renderer.farbe = Color.green;
                        //Farbe_wechseln();
                        break;
                    case 4:
                        Renderer.farbe = Color.yellow;
                        //Farbe_wechseln();
                        break;
                    case 5:
                        Renderer.farbe = Color.blue;
                        //Farbe_wechseln();
                        break;
                    case 6:
                        Renderer.farbe = Color.magenta;
                        //Farbe_wechseln();
                        break;
                    case 7:
                        Renderer.farbe = Color.red;
                        //Farbe_wechseln();
                        break;
                    }
                }
            }
        };
 
        if (null != timer) {
            timer.cancel();
            timer = null;
        }
        timer = new Timer();
        timer.scheduleAtFixedRate(timerTask, 0, geschwindigkeit);
 
    }
 
Zuletzt bearbeitet:
D

delpiero223

Gast
Den Kasten habe ich ja gesehen, nur funktioniert es auch mit dem Code noch nicht, den du eben geschrieben hast :(
 

Crian

Top Contributor
Was genau funktioniert denn nicht? Was passiert, und was soll passieren? Es kann gut sein, dass ich die Intention deines Codes missverstanden habe.

Beschreibe am besten das, was raus passieren soll und was im Moment passiert.
 
D

delpiero223

Gast
Es funktioiniert immer noch genau das nicht, was im Eingangspost auch schon nicht funktionierte: Klicke ich oben in der Menüleiste auf eine Geschwindigkeit für die Farbwechlsung, funktioniert das erst einmal und die Farbe wechselt in der gewünschten Geschwindifgkeit.

Klicke ich dann noch einmal auf eine Geschwindigkeit im Menü oder eine einzelne Farbe, so überlagern sich beide Timer anscheinend immer noch und das Wechseln der Farbe bleibt sehr schnell.

Grüße,
Peer
 

Crian

Top Contributor
Ich schau mir mal deinen Code an. Und muss gerade alle Umlaute umsetzen, weil die bei mir als seltsame Rauten und Compilerfehler angezeigt werden. Bitte KEINE Umlaute benutzen in Zukunft.
 
D

delpiero223

Gast
Das tut mir Leid, ich habe mich nur gefreut gehabt, dass Eclipse und Java mit ihnen umgehen können und sie dann gleich genutzt :shame:
 

delpiero223

Mitglied
Bei mir ist das übrigens nicht so: Ich habe die Sachen aus dem zip-Ordner eben mal wieder extrahiert und in Eclipse importiert -> Keine Probleme

p.s. ich habe mich hier mal registriert. Es ist nicht möglich, die Gast-Beiträge irgendwie zu überschreiben, oder?
 

Crian

Top Contributor
Nein ich denke nicht.

Liegt vermutlich daran, dass ich bei mir alles in utf8 mache. Daten, Quellcode, ...


Ich kann das Problem nun nachvollziehen. Mal sehen.


Was mir auffällt aber damit wohl nichts zu tun hat: DU erstellst zig neue Instanzen des ActionListeners. Das ist eigentlich unnötig, da kann an alle die gleiche Instanz übergeben werden.


Davon ab wären vermutlich Listen für viele Dinge gut zur Codeverschlankung, aber auch das ist nicht das Problem.

[EDIT]Wobei: Dann hat jeder dieser ActionListener seinen eigenen Timer und dann passiert natürlich unheil! Ich teste das mal eben...[/EDIT]
 
Zuletzt bearbeitet:

delpiero223

Mitglied
Wenn du gerade einen Tipp hättest, wie ich die ActionListener nur einmal verwenden kann, wäre ich auch dankbar. Etwa 2 Stunden kann ich an dem Code noch arbeiten, dann ist das Praktikum erst einmal vorbei. :(
 

Crian

Top Contributor
1.) Im Renderer alle [c]new MyActionListener()[/c] per suchen und ersetzten durch [c]myActionListener [/c] ersetzen.

2.) vor dem ersten Vorkommen von [c]myActionListener [/c] die Zeile [c]MyActionListener myActionListener = new MyActionListener();[/c] einfügen.


Behebt das Problem allerdings noch nicht.
 

Crian

Top Contributor
Problem gelöst! Zusätzlich noch den Aufruf [c]wechsleFarbe();[/c] im TimerTask in
Code:
wechsleFarbe()
unterlassen! Das ist in Zeile 266 in der Klasse MyActionListener.

[EDIT]Das Problem war also dreierlei:

1) Jeder Menüeintrag hatte seine eigene Kopie vom Actionlistener, dadurch hatte jede dieser Kopien ihren eigenen Timer. Wenn in Kopie 1 der schnelle Wechsel per Timer angelegt wurde und dann in Kopie zwei ein langsamerer, hat Kopie zwei versucht, SEINEN Timer zu canceln, der war aber gar nicht aktiv, da es der Timer in Kopie 1 war.

2) Durch den erneuten Aufruf von wechsleFarbe im TimerTask wurden dauernd neue Tasks erstellt, statt den einen Task in Ruhe arbeiten zu lassen.

3) Du hattest den Task immer nur einmal anlaufen lassen, deshalb vermutlich auch der neue Start, der aber unabhängig von der Geschwindigkeit dann griff. Das vermeidet man durch: In
Code:
wechsleFarbe()
unter der TimerTask-Definiton
Java:
        if (null != timer) {
            timer.cancel();
            timer = null;
        }
        timer = new Timer();
        timer.scheduleAtFixedRate(timerTask, 0, geschwindigkeit);
hineinschreiben.
[/EDIT]
 
Zuletzt bearbeitet:

delpiero223

Mitglied
In Zeile 266 steht das doch überhaupt nicht. Wenn ich es aber aus Zeile 262 rausnehme, wechselt die Farbe immer noch nur einmal :(

[OT]Ich glaube, ich bin zu blöd dafür (und teste den OT-Kasten mal aus)[/OT]
 

Crian

Top Contributor
Zur Not packe ich dir die funktionierende Version ein.

Vorher probiere mal diese Methode einzubauen:

Java:
    public void wechsleFarbe() {
        final TimerTask timerTask = new TimerTask() {
            public void run() {
                if (farbeWechseln == true) {
                    zufallszahl = (int) (Math.random() * 7 + 1);
                    switch (zufallszahl) {
                    case 1:
                        Renderer.farbe = Color.white;
                        break;
                    case 2:
                        Renderer.farbe = Color.cyan;
                        break;
                    case 3:
                        Renderer.farbe = Color.green;
                        break;
                    case 4:
                        Renderer.farbe = Color.yellow;
                        break;
                    case 5:
                        Renderer.farbe = Color.blue;
                        break;
                    case 6:
                        Renderer.farbe = Color.magenta;
                        break;
                    case 7:
                        Renderer.farbe = Color.red;
                        break;
                    }
                }
            }
        };
        if (null != timer) {
            timer.cancel();
            timer = null;
        }
        timer = new Timer();
        timer.scheduleAtFixedRate(timerTask, 0, geschwindigkeit);
    }

Und

1.) Im Renderer alle [c]new MyActionListener()[/c] per suchen und ersetzten durch [c]myActionListener [/c] ersetzen.

2.) vor dem ersten Vorkommen von [c]myActionListener [/c] die Zeile [c]MyActionListener myActionListener = new MyActionListener();[/c] einfügen.

hast du gemacht, ja?
 
Zuletzt bearbeitet:

delpiero223

Mitglied
Gerne :thumbup:

edit: es geht aber immer noch nicht, wenn ich über die Einstellungen später wieder eine langsamere Farbwechselgeschwindigkeit einbauen möchte.
 

Crian

Top Contributor
Sehr schön. Das ist ein nettes Programm, auch wenn du nach und nach einige Sachen im Code verschönern solltest. Methoden entschlacken, dich nicht wiederholen (DRY), Namenskonventionen einhalten, Methoden nicht zu lang werden lassen etc., aber das sind alles nur Feinheiten. Helfen dir aber auch, den Überblick zu wahren und erleichtern anderen, durch den Code durchzusteigen.
 

delpiero223

Mitglied
Danke für die netten Worte und noch einmal auch für die Hilfe. Wenn ich nach dem Praktikum, was gerade vorbei ist, noch einmal die Zeit dafür habe, werde ich das natürlich tun und Eclipse auch noch mal auf den heimischen Rechner laden.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
frager2345 Problem mit Methode Java Basics - Anfänger-Themen 4
J Problem mit einer Methode die gewissen Inhalt einer Array löschen soll Java Basics - Anfänger-Themen 9
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6
P Problem beim Überschreiben einer vererbten Methode Java Basics - Anfänger-Themen 4
W OOP Vererbung und Problem bei Zählschleife in einer Methode Java Basics - Anfänger-Themen 10
E Problem mit static Methode Java Basics - Anfänger-Themen 4
N Methoden printf Methode Problem Java Basics - Anfänger-Themen 2
K Problem mit Methode(Array,Boolean,ForSchleife) Java Basics - Anfänger-Themen 6
V Problem Aufruf einer Methode in einer Methode Java Basics - Anfänger-Themen 1
P TicTacToe Problem mit Win Methode Java Basics - Anfänger-Themen 4
A Problem mit toString Methode Java Basics - Anfänger-Themen 8
P Problem mit dem Auslesen einer Varible/Methode Java Basics - Anfänger-Themen 8
F Problem bei eshop -> Ausführen einer Methode über eine Shopverwaltung Java Basics - Anfänger-Themen 6
U Methoden Zugriff auf Array von weiterer Methode einer Klasse, Rückgabewert Problem Java Basics - Anfänger-Themen 5
E Problem beim Übergeben von Parameter an Methode Java Basics - Anfänger-Themen 2
O Methode in andere Klasse verlegt, "auslesen" einer HTML Seite verschnellert - Problem. Java Basics - Anfänger-Themen 4
F problem mit erster methode. Java Basics - Anfänger-Themen 6
M Threads Thread.Sleep Problem im Zusammenhang mit GUI/ActionPerformed-Methode Java Basics - Anfänger-Themen 4
C Problem mit Zugriff auf Variable bzw. get-Methode in anderer Klasse Java Basics - Anfänger-Themen 2
D Problem mit set-Methode Java Basics - Anfänger-Themen 6
F Problem bei Rückgabe von StringBuffer aus Methode Java Basics - Anfänger-Themen 6
M Problem mit methode?? Java Basics - Anfänger-Themen 6
H Methoden Problem mit get-methode im Quelltext Java Basics - Anfänger-Themen 17
B Problem bei dem erstellen einer Main Methode Java Basics - Anfänger-Themen 4
M Problem bei Schleife + Methode Java Basics - Anfänger-Themen 2
G Problem mit sleep() Methode Java Basics - Anfänger-Themen 7
O Methode - Problem mit Subtraktion in einer while-Schleife Java Basics - Anfänger-Themen 2
T Problem beim Returnwert einer Methode Java Basics - Anfänger-Themen 12
chik Problem mit der Runnable Methode Java Basics - Anfänger-Themen 3
S Problem mit main Methode Java Basics - Anfänger-Themen 2
V Problem von einbinden der Methode Java Basics - Anfänger-Themen 2
V Problem mit Insert-Methode des Binärbaums Java Basics - Anfänger-Themen 4
J Methode nimmt Liste -> Problem Java Basics - Anfänger-Themen 4
G PRoblem mit rekursiver float additions methode Java Basics - Anfänger-Themen 9
S Problem mit Eclipse: erkennt vorhandene Main-Methode nicht Java Basics - Anfänger-Themen 13
D Problem bei einer Rekursiven Methode Java Basics - Anfänger-Themen 2
K mein() Methode – Argumente auslesen Problem Java Basics - Anfänger-Themen 6
G Problem mit Methode getColumnCount (JTable) Java Basics - Anfänger-Themen 3
M Problem mit Exponential Methode Java Basics - Anfänger-Themen 6
M Problem beim Aufruf einer Methode: Wo is der Fehler? Java Basics - Anfänger-Themen 12
P Problem mit Array in Methode Java Basics - Anfänger-Themen 4
S Problem mit Methode und Eclipse Java Basics - Anfänger-Themen 8
B Problem mit einer static void Methode Java Basics - Anfänger-Themen 8
H Konstruktor in Methode fremder Klasse: try-catch-Problem Java Basics - Anfänger-Themen 4
megachucky Kleines Problem mit dem "return" einer Methode. Java Basics - Anfänger-Themen 11
megachucky Problem mit LinkedList und der get-Methode Java Basics - Anfänger-Themen 2
Paule Problem mit getText()-Methode Java Basics - Anfänger-Themen 12
E Problem mit Methode Math.max Java Basics - Anfänger-Themen 2
D Problem bei Übergabe von Werten an eine Methode Java Basics - Anfänger-Themen 2
V Problem mit der Anzeige einer paint-Methode in einem Panel Java Basics - Anfänger-Themen 2
M Problem mit methode Java Basics - Anfänger-Themen 3
W Problem mit dem Aufruf einer Methode Java Basics - Anfänger-Themen 2
G Problem mit einer Methode Java Basics - Anfänger-Themen 2
K Verständnis Problem bei Server/Client Java Basics - Anfänger-Themen 2
I WildFily - unterschiedliche Libs im Projekt verursachen Problem Java Basics - Anfänger-Themen 11
imocode Vererbung Problem mit Vererbung Java Basics - Anfänger-Themen 2
L Taschenrechner Problem Java Basics - Anfänger-Themen 4
I Applikationsserver (WildFly) - Zugriff auf Ressourcen.. Problem mit Pfade Java Basics - Anfänger-Themen 10
A ScheduledExecutorService problem Java Basics - Anfänger-Themen 7
marcelnedza Problem mit Weltzuweisung, JavaKarol Java Basics - Anfänger-Themen 13
XWing Methoden rückgabe Problem? Java Basics - Anfänger-Themen 6
M Erste Schritte Collatz Problem max int Java Basics - Anfänger-Themen 3
M Problem bei verschachtelter for-Schleife bei zweidimensionalen Arrays Java Basics - Anfänger-Themen 3
C GLOOP Problem beim Erstellen der Kamera Java Basics - Anfänger-Themen 9
nelsonmandela Problem bei Ausgabe einer Switch - Case Funktion Java Basics - Anfänger-Themen 5
L Problem bei Rechnung mit Math.pow Java Basics - Anfänger-Themen 13
A Thread-Schreibe-Lese-Problem Java Basics - Anfänger-Themen 4
SUPERTJB return Problem Java Basics - Anfänger-Themen 3
sserio BigInteger Problem Java Basics - Anfänger-Themen 4
JordenJost Taschenrechner problem Java Basics - Anfänger-Themen 5
K Problem mit "Random" Java Basics - Anfänger-Themen 5
S Datei anlegen Problem! Groß- und Kleinschreibung wird nicht unterschieden Java Basics - Anfänger-Themen 4
sserio Problem beim Anzeigen Java Basics - Anfänger-Themen 5
xanxk Problem For-Schleife mit Charakter Java Basics - Anfänger-Themen 2
L Unbekanntes Problem mit 2d Array Java Basics - Anfänger-Themen 6
sserio Liste erstellt und ein Problem mit dem Index Java Basics - Anfänger-Themen 8
sserio Schwimmen als Spiel. Problem mit to String/ generate a card Java Basics - Anfänger-Themen 4
J Schleife Problem Java Basics - Anfänger-Themen 2
D Problem mit der Erkennung von \n Java Basics - Anfänger-Themen 2
milan123 das ist meine aufgabe ich hab das problem das bei mir Wenn ich die Richtung der Linien verändern will und drei davon sind richtig, verändere ich die 4 Java Basics - Anfänger-Themen 3
M Verständins Problem bei Aufgabe Java Basics - Anfänger-Themen 4
HeiTim Problem mit der Kommasetzung an der richtigen stelle Java Basics - Anfänger-Themen 59
Temsky34 Problem mit dem Code Java Basics - Anfänger-Themen 17
P Problem mit Calendar.getDisplayName() Java Basics - Anfänger-Themen 8
C Problem mit mehreren Methoden + Scanner Java Basics - Anfänger-Themen 5
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19
M Problem mit Klassenverständnis und Button Java Basics - Anfänger-Themen 8
EchtKeineAhnungManchmal hallo habe ein Problem mit einer Datei -> (Zugriff verweigert) Java Basics - Anfänger-Themen 4
H Problem mit Verzweigungen Java Basics - Anfänger-Themen 6
H Problem mit Rückgabewert Java Basics - Anfänger-Themen 7
josfe1234 JAVA FX problem Java Basics - Anfänger-Themen 3
A Code Problem Java Basics - Anfänger-Themen 6
Henri Problem von Typen Java Basics - Anfänger-Themen 7
J Problem mit "ArrayIndexOutOfBoundsException" Java Basics - Anfänger-Themen 11
K jackson Mapping - Problem mit Zeitzonen Java Basics - Anfänger-Themen 10
B Threads Problem mit mehreren Threads Java Basics - Anfänger-Themen 38
I Output BigDecimal anstatt double / Problem beim Rechnen Java Basics - Anfänger-Themen 16
D Schleifen Problem Java Basics - Anfänger-Themen 2
H So viele Fehlermeldungen, dass ich nicht weiß wo das Problem ist. Java Basics - Anfänger-Themen 6
J JAVA-Problem blockiert MEDIATHEKVIEW Java Basics - Anfänger-Themen 13

Ähnliche Java Themen

Neue Themen


Oben