Java: Schriftfarbe ändern?
Hallo,
ich arbeite gerade an einem Tic-Tac-Toe-Programm und möchte, dass die Anzeige "Player X, it's your turn" in blauer Farbe erscheint und "Player P, it's your turn" in roter Farbe.
Jedoch bekomme ich das irgendwie nicht hin. Ich kann immer nur für beide eine Farbe festlegen. Kann mir jemand helfen?
if (GUI.player == 0) { // Player X ist dran
g.drawString ("Player X, it's your turn!", 25, 400);
}
else if (GUI.player == 1) {
g.drawString ("Player O, it's your turn!", 655, 400);
}
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!
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!
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.