Schachbrett realisieren

starbug

Erfahrenes Mitglied
Hallo allerseits,

habe eine neu Aufgabe bekommen und damit noch so meine Probleme. Es geht darum mittels Swing ein Schachbrett zu erstellen wobei die Felder JButtons seien sollen. Das ist der erste Teil zu dem ich auch schon einen Code geschrieben habe:

Code:
public void erstelleSpielfeld()
	{
		JFrame frame = new JFrame("Schachbrett");
		frame.setSize(800,800);
		JPanel feld = new JPanel();
		
		feld.setLayout(new GridLayout(8,8));
		
		for(int i = 0; i<64; i++)
		{
			feld.add(new JButton());
		}
		
		frame.add(feld);
		frame.setVisible(true);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
	}

Das geht soweit auch nur mein Problem ist jetzt das ich die Farbe der Buttons nicht mehr ändern kann, denn diese sollen ja Schwarz-Weiß sein. Was kann ich tun ?
 
Ich würde mir ein 2-Dimensionales Array vom Typ JButton erstellen. Wenn du das gemacht hast kannst du dann die Schleife anpassen...
a) aus einer Schleife der Größe 64 werden dann 2 verschachtelte Schleifen der Größe 8 für die horizontale und die vertikale Position
b) Du initialisierst dann zuerst den Button an der entsprechenden Position und fügst diesen dann dem Feld hinzu. Ich würde hier auch gleich die Farbgebung (schwarz/weiß) mit übernehmen.
Viel Glück!

PS.: Bitte setzte Java-Code auch in die entsprechenden Tags, liest sich besser aufgrund Syntax Highlighting und die Chance, dass dir geholfen wird erhöht sich auf diese Weise enorm!
 
Was die Farbe betrifft, du solltest am besten einfach die paint-Methode von JButton überschreiben. Und dann dort einfach alles weiß bzw. schwarz an malen. Die alternative, allerdings etwas komplexer wäre den JButton ein Bild anzeigen zu lassen das dann einfach nur schwarz oder weiß ist.
 
Die alternative, allerdings etwas komplexer wäre den JButton ein Bild anzeigen zu lassen das dann einfach nur schwarz oder weiß ist.

Ich persönlich vermute, was ich auch empfehlen würde, dass das Bild auf einem Button die Spielfigur darstellen wird.
 
Hi,

ich würde hier eher JLabel verwenden und bei diesen einen MouseListener implementieren. So bist du von der Farbgebung her unabhängig und kannst dann meiner Meinung nach später leichter damit arbeiten.

Wenn die JButtons aber von der Aufgabenstellung her fix vorgegeben sind, dann würde ich eine neue Klasse machen und diese von JButton erben lassen. Die paint()-Methode überschreiben und diese dann gesamten "Button" in einer Farbe anstreichen lassen. Welche Farbe der Button hast, kannst du ja zum Beispiel im Konstruktor mitgeben lassen.

Gruß
BK
 
Zuletzt bearbeitet:
Hi,

nö, ich meine schon die paint()-Methode ;)

Wobei ich aus den Docs jetzt nicht genau rauslesen kann, was jetzt für dein Ziel bevorzugt werden soll.

Gruß
BK
 
Zurück