Hallo,
Ich habe da ein Problem mit einem Array. Und zwar, wenn ich eine Eigentschaft an einem JLabel innerhalb des Konstruktors ändere ist alles ok (grün markierte Zeile). Aber wenn ich in der Methode "setSpielfeld" etwas ändere (rot markierte Zeile) hat es keine Auswirkungen... ich komme einfach nicht dahinter wieso nicht.
Die Labels sind sichtbar und auch das Spielfeldmuster wird korrekt dargestellt. Habe den Code gekürzt. setText funktioniert bei der grünen Markierung bei der roten Markierung aber nicht. Es sind keine Auswirkungen sichtbar. Selbst setBackground(...); geht nicht. Egal was ich ändere, man sieht es nicht. Die Labels sind aber alle sichtbar gemacht worden im Konstruktor. Ich hoffe ihr könnt mir helfen.
Habe zu Testzwecken die beiden System.out's in setSpielfeld hinzugefügt um zu überprüfen ob von der Hauptfunktion auch die Werte übergeben werden. Das klappt auch einwandfrei. Es kommt auch keine Fehlermeldung und nichts, eigentlich müsste es doch so funktionieren wie ich es gemacht habe...
Nochmal in kurzform:
Spielfeld sichtbar. Die einzelnen Felder (hier die Labels) lassen sich auch ändern. Zumindest im Konstruktor, in der Methode "setSpielfeld" jedoch nicht.
Ich habe da ein Problem mit einem Array. Und zwar, wenn ich eine Eigentschaft an einem JLabel innerhalb des Konstruktors ändere ist alles ok (grün markierte Zeile). Aber wenn ich in der Methode "setSpielfeld" etwas ändere (rot markierte Zeile) hat es keine Auswirkungen... ich komme einfach nicht dahinter wieso nicht.
Die Labels sind sichtbar und auch das Spielfeldmuster wird korrekt dargestellt. Habe den Code gekürzt. setText funktioniert bei der grünen Markierung bei der roten Markierung aber nicht. Es sind keine Auswirkungen sichtbar. Selbst setBackground(...); geht nicht. Egal was ich ändere, man sieht es nicht. Die Labels sind aber alle sichtbar gemacht worden im Konstruktor. Ich hoffe ihr könnt mir helfen.
Habe zu Testzwecken die beiden System.out's in setSpielfeld hinzugefügt um zu überprüfen ob von der Hauptfunktion auch die Werte übergeben werden. Das klappt auch einwandfrei. Es kommt auch keine Fehlermeldung und nichts, eigentlich müsste es doch so funktionieren wie ich es gemacht habe...
Nochmal in kurzform:
Spielfeld sichtbar. Die einzelnen Felder (hier die Labels) lassen sich auch ändern. Zumindest im Konstruktor, in der Methode "setSpielfeld" jedoch nicht.
Code:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridLayout;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class Spielfeld extends JPanel
{
/* Erstellen des Spielfeldes.
* Schachbrettartig mit einer Dimension von
* 10x10 Feldern. */
private JLabel schachbrett[][] = new JLabel[10][10];
/* Konstruktor um das Spielfeld zu erstellen */
Spielfeld()
{
/* Festlegung des Layouts */
this.setLayout(new GridLayout(10,10));
int k = 0;
/* Erzeugen des Schachmusters */
for(int i=0; i<10; i++)
{
.... erzeugt das Schachbrettmuster (hab den Code gekürzt)
}
[COLOR="Lime"]schachbrett[0][0].setText("Test");[/COLOR]
}
/* Setzen der Spielfiguren auf dem Spielfeld
* @param x gibt die x Koordinate der Figur an
* @param y gibt die y Koordinate der Figur an
* @param figur gibt das Symbol der Figur an*/
public void setSpielfeld(int x, int y, String figur){
System.out.println("Koordinaten: x: "+x+"y: "+y);
System.out.println(figur);
[COLOR="Red"]schachbrett[y][x].setText(figur);[/COLOR]
}
}