Schleife funktioniert nicht wie gewünscht

Status
Nicht offen für weitere Antworten.

Verjigorm

Top Contributor
Also ich hab folgendes Problem mit dieser Schleife in einer MouseEntered-Funktion

Code:
					for(int i=0; i<ANZAHL_SPALTEN; i++)
					{
						System.out.println("setze: " + position_reihe + "," + i);
						panelarray[position_reihe][i].setBackground(Color.BLACK);
					}

wenn ich NUR das println reinmache, dann wird die Schleife normal durchlaufen (ANZAHL_SPALTEN ist 10),
die Anzeige ist dann so:
setze 3,0
setze 3,1
setze 3,2
setze 3,3
setze 3,4
setze 3,5
setze 3,6
setze 3,7
setze 3,8
setze 3,9

wenn ich das setBackground dazu nehme, dann gibt das println für i EINMAL 0 aus:
setze 3,0

ich verstehe nicht, wieso die Schleife nicht ganz normal durchlaufen wird?
außerdem wird das setBackground auch nicht ausgeführt...
Alle Werte lasse ich mir zur Kontrolle ausgeben und alle Werte sind genau so, wie sie sein sollen, aber die Schleife wird nicht korrekt ausgeführt
(panelarray ist nen Zweidimensionales Array bestehend aus JPanels und das funktioniert überall einwandfrei außer in dieser Schleife)

Ich paste hier mal die komplette Funktion, vielleicht findet jemand was :)

Code:
	public void mouseEntered(MouseEvent e) 
	{
		//System.out.println("pos: " + position_reihe);
		if(gestartet)
		{
			try
			{
				e.getComponent().getName().matches("-");
				
				String name = e.getComponent().getName();
				String[] name_split = name.split("-");
				int x = new Integer(name_split[1]);
				int y = 0;
				
				for(int i=0; i< buchstaben.length; i++)
				{
					if(buchstaben[i].equals(name_split[0]))
					{
						y = i;
						break;
					}				
				}
				//System.out.println(position_reihe + " != " + x);
				if(position_reihe > 0 && position_reihe != x)
				{
					//System.out.println("Reihe gewechselt " + ANZAHL_SPALTEN);
					for(int i=0; i<ANZAHL_SPALTEN; i++)
					{
						//System.out.println("setze " + position_reihe + "," + i);
						panelarray[position_reihe][i].setBackground(Color.BLACK);	
					}
				}
				
				//System.out.println("entered " + x + "," + (buchstaben_index+1));
				if(aktives_boot != 0)
				{
					int start = y;
					int ende = ANZAHL_SPALTEN-1;
					
					if(aktives_boot == 1)
					{
						ende = start + 3 - 1;

						while(ende > ANZAHL_SPALTEN-1)
						{
							start -=1;
							ende = start + 3 - 1;
						}
					}//if
					else
					{
						ende = start + aktives_boot -1;
						
						while(ende > ANZAHL_SPALTEN-1)
						{
							start -=1;
							ende = start + aktives_boot - 1;
						}
					}//else
					for(int i=0; i<ANZAHL_SPALTEN; i++)
					{
						if(i >= start && i<= ende)
						{
							//System.out.println(x+","+(i+1));
							panelarray[x][i+1].setBackground(Color.BLUE);
							selected[x-1][i] = true;
						}
						else
						{
							panelarray[x][i+1].setBackground(Color.GREEN);
							selected[x-1][i] = false;
						}
					}
				}
				
				position_reihe = x;
				
			}//try
			catch(NullPointerException npe)
			{
				//Maus außerhalb Panels
				//später füllen
			}
		}
	}
 
S

SlaterB

Gast
weil du

catch(NullPointerException npe)
{
//Maus außerhalb Panels
//später füllen
}

stehen hast,

schreibe dort

catch(NullPointerException npe)
{
System.out.println("es läuft nicht alles wie man denkt");
npe.printStackTrace();
}

und du wirst langsam begreifen, warum die Schleife nicht zu Ende läuft ;)
 

tfa

Top Contributor
Verjigorm hat gesagt.:
Code:
			catch(NullPointerException npe)
			{
				//Maus außerhalb Panels
				//später füllen
			}

Kleiner Tipp: Du solltest Exception niemals einfach so verschlucken. Das hindert Dich nur bei der Fehlersuche.
 

Verjigorm

Top Contributor
ja, ich weiß, dass man Exceptions nicht weglassen soll, da steht eigentlich auch noch mehr Code drin, den ich rausgelöscht habe, sonst wird der Codeblock 2 seiten lang

hab alles mal auskommentiert und nur ein
npe.getStackTrace();
reingeschrieben, Exception wird an dieser Stelle trotzdem keine geworfen, die Exception soll das .matches("-") am ANfang abfangen
 
S

SlaterB

Gast
das mag ich kaum glauben,
versuche bitte als nächstes

for(int i=0; i<ANZAHL_SPALTEN; i++)
{
System.out.println("setze: " + position_reihe + "," + i);
System.out.println("test");
if (panelarray[position_reihe] == null) {
System.out.println("nänä, war doch NullPointer");
} else {
panelarray[position_reihe].setBackground(Color.BLACK);
}


wie siehts nun aus? ;)


(die Ausgabe 'test' ist nur dafür da um abzusichern, dass du nicht eine alte Code-Version nochmal ausführst)
 

Verjigorm

Top Contributor
hm ok, das if (panelarray[position_reihe] == null) hat mir gezeigt, dass es nen Problem mitm Index gab (i+1 anstatt i passt :) ), aber wieso wird da denn keine Exception geworfen und einfach nur die Schleife beendet?

das verstehe ich nicht an der Sache
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
W While Schleife funktioniert nicht ganz Allgemeine Java-Themen 4
H do-while Schleife funktioniert nicht wie ich es möchte Allgemeine Java-Themen 7
F Schleife funktioniert nicht richtig Allgemeine Java-Themen 13
W While-ESC-Schleife funktioniert nicht Allgemeine Java-Themen 3
S Schleife funktioniert nicht Allgemeine Java-Themen 2
T Verschachtelte For-Schleife gibt falschen Wert zurück, Abbruchbedingung evtl. falsch? Allgemeine Java-Themen 9
A verschachtelte for-Schleife in einen Stream umwandeln? Allgemeine Java-Themen 4
A Wie schreibe ich eine For-Schleife in ein Stream API um? Allgemeine Java-Themen 12
MangoTango Operatoren while-Schleife für Potenz Allgemeine Java-Themen 3
berserkerdq2 Wie synchronisiere ich eine for-Schleife Allgemeine Java-Themen 12
N Warum wird die For Schleife nicht betreten Allgemeine Java-Themen 4
M Schleife für einen TicTacToe Computer Allgemeine Java-Themen 5
Lukas2904 Schleife mit ansteuerung einer Klasse Allgemeine Java-Themen 5
A For-Schleife Allgemeine Java-Themen 5
J Algorithmen Analyse einer Schleife Allgemeine Java-Themen 6
1 Klassen Variabel aus Schleife übergeben Allgemeine Java-Themen 8
D "Automatisierte", variable verschachtele for-Schleife Allgemeine Java-Themen 9
K For-Schleife <> oder != Operator verwenden? Allgemeine Java-Themen 2
J Einen Thread in einer Schleife Allgemeine Java-Themen 2
D While-Schleife - if Zweig unterbrechen Allgemeine Java-Themen 1
F Zweifache For-Schleife Allgemeine Java-Themen 6
P Operatoren Problem mit Zähler in recursiver Schleife Allgemeine Java-Themen 2
T String aus While Schleife für ganze Klasse sichtbar machen Allgemeine Java-Themen 5
M While-Schleife schneller, solange die Abbruchbedingung nicht vom Schleifeninneren abhängt Allgemeine Java-Themen 3
S Variablen String[] Array per schleife in int[] einlesen Allgemeine Java-Themen 8
D Methoden Buttons erscheinen doppelt nach Wiederholung in Schleife Allgemeine Java-Themen 1
RalleYTN Problem bei Schleife die durch einen 2D raum iterieren soll Allgemeine Java-Themen 1
T for - Schleife Allgemeine Java-Themen 1
J While Schleife ausführen bis Zahl = X Allgemeine Java-Themen 19
R Komplizierte Schleife Allgemeine Java-Themen 1
Q For-Schleife in String-Value Allgemeine Java-Themen 3
F Abstrakte Klasse in "For each" Schleife Allgemeine Java-Themen 1
F for-Schleife auf Kommandoebene ausgeben Allgemeine Java-Themen 9
P Input/Output java.util.Scanner in einer Schleife und Exception-Behandlung: Einlesen einer Zahl Allgemeine Java-Themen 4
P Erweiterte For Schleife Allgemeine Java-Themen 7
D Arraylist/For Schleife/Scanner Allgemeine Java-Themen 30
Y automatisierte for Schleife Allgemeine Java-Themen 13
B For schleife und weiter? Allgemeine Java-Themen 8
D Probleme bei for-Schleife Allgemeine Java-Themen 4
L einfache Verzinsung mit for-Schleife & Ausschluss von Werten beim Einlesen Allgemeine Java-Themen 5
N Frage zur while-Schleife Allgemeine Java-Themen 18
M for Schleife mit Swing Button abbrechen Allgemeine Java-Themen 7
M PdfPTable per for-Schleife befüllen Allgemeine Java-Themen 3
F for-Schleife mit : Allgemeine Java-Themen 5
S Pattern.Match Suche: For Schleife einbinden und in Liste schreiben Allgemeine Java-Themen 3
W Problem mit Index in einer for-Schleife Allgemeine Java-Themen 8
A Collections Array-Elemente in ArrayList kopieren ohne Schleife Allgemeine Java-Themen 7
P Variablen Auf durch for-Schleife generierte JComboBox zugreifen Allgemeine Java-Themen 3
G while Schleife ausführen solange eine Taste gedrückt ist Allgemeine Java-Themen 14
F Foreach und for - Schleife Allgemeine Java-Themen 10
W Berechnung Durchschnitt mit Schleife Allgemeine Java-Themen 9
S for-Schleife, while-Schleife Problem Allgemeine Java-Themen 6
H Netbeans Warning bei Thread.sleep in Schleife Allgemeine Java-Themen 4
A java.lang.NullPointerException bei Schleife Allgemeine Java-Themen 3
S Erste Schritte Exception beendet Schleife nicht - Methode macht trotz throw weiter? Allgemeine Java-Themen 9
R while schleife auf 3 durchgänge beschränken Allgemeine Java-Themen 6
V anstatt thread.join() einfach while schleife? Allgemeine Java-Themen 8
x22 for-Schleife Allgemeine Java-Themen 76
S Text in for Schleife in Label einfügen Allgemeine Java-Themen 4
J Schleife mit : Allgemeine Java-Themen 18
S Klassen in einer Schleife durchlaufen Allgemeine Java-Themen 11
E Schleife wird nicht ausgeführt!!! Allgemeine Java-Themen 8
C Schleife mit leerem Anweisungsblock wird trotz erfüllter Bedingung nicht verlassen Allgemeine Java-Themen 9
S Do-While Schleife bricht nicht ab Allgemeine Java-Themen 3
S Erste Schritte if-Anweisung in for- oder while-schleife umwandeln Allgemeine Java-Themen 3
K CheckBox schleife Allgemeine Java-Themen 2
D Methoden Thread Schleife Status Allgemeine Java-Themen 7
J Verschiedene Klassen als "Object" in ArrayList und dann in for-Schleife erzeugen!? Allgemeine Java-Themen 2
R In einer for Schleife bei einem Substring anfangen, wo man davor aufgehört hat Allgemeine Java-Themen 6
T Rekursion mit While Schleife kombinieren? Allgemeine Java-Themen 4
D Sterne Muster mit einer Schleife Allgemeine Java-Themen 5
Dragonfire Code Konvention for-Schleife / return Allgemeine Java-Themen 15
hdi Detail-Frage zur for-Schleife Allgemeine Java-Themen 9
J Thread pausieren, lange while-Schleife Allgemeine Java-Themen 8
Q Variable aus Schleife/Switch benutzen Allgemeine Java-Themen 7
J Erweiterte For-Schleife mit Vector Allgemeine Java-Themen 5
C Geschachtelte For-Schleife: Äußere Schleife wird nur einmal durchlaufen!? Allgemeine Java-Themen 3
W return Collection mit schleife durchsuchen Allgemeine Java-Themen 10
H Threads.... ich will aus der While-Schleife raus Allgemeine Java-Themen 6
calzone Warum wird nicht aus der Schleife gesprungen ? Allgemeine Java-Themen 2
lacyuu Schleife hängt sich auf, wieso?? Allgemeine Java-Themen 2
ModellbahnerTT Problem: Schleife über Textdatei Allgemeine Java-Themen 5
S Wie gross ist die Laufzeit für diese Schleife?? Allgemeine Java-Themen 8
J Schachbrett mit for- oder while-Schleife Allgemeine Java-Themen 22
I For- Schleife falsch? Allgemeine Java-Themen 8
T Schleife kurzzeitig anhalten Allgemeine Java-Themen 5
V Problem in While-Schleife Allgemeine Java-Themen 3
Escorter Switch in der Schleife! Allgemeine Java-Themen 4
C Auswertung der for each schleife? Allgemeine Java-Themen 2
GilbertGrape foreach Schleife Allgemeine Java-Themen 12
J FOR-Schleife-Problem Allgemeine Java-Themen 10
G Schleife durch Button beenden Allgemeine Java-Themen 6
G Anonymen Buttons in for schleife ActionListener hinzufügen Allgemeine Java-Themen 5
T getParameter in while schleife Allgemeine Java-Themen 3
O while - Schleife unterbrechen mit break; Allgemeine Java-Themen 5
R array.length in For-Schleife verwenden? Allgemeine Java-Themen 22
T Schleife im Konstruktor? Allgemeine Java-Themen 9
S Schleife mit Durchlaufrate Allgemeine Java-Themen 5
R Per for schleife string propertys in einer datei speichern Allgemeine Java-Themen 15
H In Testklasse Objekte erzeugen und in einer Schleife ausgebe Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben