Java: Schriftfarbe ändern?

2 Antworten

Funktioniert es mit setColor denn nicht?

if (GUI.player == 0) { // Player X ist dran
  g.setColor(Color.BLUE);
  g.drawString("Player X, it's your turn!", 25, 400);
}
else if (GUI.player == 1) {
  g.setColor(Color.RED);
  g.drawString("Player O, it's your turn!", 655, 400);
}

PS.: Wieso ist das Attribut player nicht objektgebunden und kann ohne Getter aufgerufen werden? Ich erahne, dass dir Kapselung kein Begriff ist und du stattdessen, entgegen dem Prinzip von Java, Variablen einfach global herumreichst. Das ist überhaupt kein guter Stil. Lerne OOP, bevor du mit Swing anfängst!

ketchupandmaio 
Fragesteller
 04.12.2019, 09:37

Ich hab nochmal n bisschen ausprobiert und habs dann genauso wie du es gemacht hast dann auch selber gelöst. Hatte nur einen Denkfehler und setColor habe ich immer über der if else bedingung geschrieben, sodass es für alles gegolten hat. Danke!

0

Keine Ahnung, was dein Objekt "g" ist.

Aber wenn ich mich nicht ganz täusche, ist zum Farbwechsel eines Fonts notwendig, dass du ein komplett neues Font-Objekt erstellst, dem Ausgabecontrol zuweist und dann den Text ausgeben lässt.

Ich kann mich täuschen, aber das war vom Prinzip her die Vorgehensweise, die ich verwenden musste, um Schriftgrößen entsprechend der Fenstergröße dynamisch anpassen zu können.

Woher ich das weiß:Hobby – private Programmiererei