Also ich hab folgendes Problem mit dieser Schleife in einer MouseEntered-Funktion
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:
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
}
}
}