Graphische Details
|
Die einzelnen Hintergrundgrafiken wurden mit dem Programm ................ erstellt.
Die Buttons des ersten Fensters, in dem entschieden wird, gegen wen man spielen möchte, wurden mithilfe des null-Layouts so positioniert, dass sie genau in die durch die Grafik vorgegebenen Rechtecke passen. Alle restlichen Fenster, außer dem Dialog für die Auswahl, ob der Highscore abgespeichert und angezeigt werden soll, wurden alle mit dem "GridBagLayout" realisiert, was eine relativ hohe Freiheit in der Gestaltung zuließ, wobei hier die Skalierung und eine zeilen- und spaltengenaue Plazierung der Buttons dennoch nicht dem Programmierer allein überlassen wird, wie es beim Nulllayout der Fall ist.
Es wurde versucht, die Spielsteine so zu gestalten, das ihr Spiegelbild (dahinterliegender, um 5 Pixel verschobener Kreis) teilweise transparent ist, allerdings war dies ohne weiteres nicht möglich, da erst ab dem JDK 1.2 direkt der Alphawert einer Farbe gesetzt werden kann. Somit wurden für den "Schatten" Standardfarben gesetzt. Die vorderen Farben sind allerdings auswählbar. Werden hier zwei gleiche Farben verwendet, so ist es jetzt noch möglich die Spieler anhand der verschiedenfarbigen hinterlegten Kreise zu erkennen.
Die Highscoreausgabe wurde so gestaltet, dass der Hintergrund der Schrift halb-transparent ist (mit Hilfe der Klasse TransparentFilter.java) und somit der gerenderte Hintergrund mehr oder weniger sichbar bleibt, was eine bessere Lesbarkeit gewährleistet ohne das Hintergrundbild vollständig zu verdecken.
Die Hintergründe, die bei der Ausgabe des endgültigen Spielstandes ausgegeben werden, sind abhängig davon, wer der beiden Spieler gewonnen hat beziehungsweise, ob das Spiel unentschieden ausgegangen ist.
Die verschiedenen Fenster wurden lediglich mit vierKlassen definiert, die zum Teil über Parameter vom Typ "boolean" enscheiden, welcher Teil des jeweiligen Konstruktors verwendet werden soll. Dabei ist eines der Fenster von Dialog abgeleitet, um zu verhindern, dass das Programm fortgesetzt wird, bevor entschieden wurde, ob der Highscore abgespeichert werden soll.