Das Tic Tac Toe-Spiel(also TTT-Spiel) ist eine gut geeignete Übung zu GUI Erstellung in Java.
In diesem Projekt verwenden wir einige ‚Swing‘ Objekte.
package TicTocs;
import javax.swing.JOptionPane;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
Dann wird eine Klasse TicTocGUI erstellt. Diese erweitert JPanel und hier werden checkSpieler und checkGewinner initialisiert.
public class TicTocGUI extends JPanel {
public static int checkSpieler = 1;//Spieler check
public static int checkGewinner;//Gewinner check
checkSpieler ist ein Integer, welcher für die Überprüfung des Spielertypen(Spieler 1 oder 2) als ein Maßstab verwendet wird. Bei Spieler 2 ist dieser eine gerade Zahl.
public TicTocGUI() {
setLayout(new GridLayout(3,3));//Gatterlayout für Spielbrett
Buttons(); //Felder werden initialisiert
}
JButton felder[] = new JButton[9]; // 9 Spielfelder
JFrame fenster = new JFrame("TIC TAC TOE"); //JFrame Fenster erstellen
Im TTT-Spiel wird häufig ein 3×3-Spielfeld verwendet. Man kann natürlich das Spielfeld vergrößern und das Spiel bisschen komplizierter machen.
Hier wird zuerst ein GridLayout, also ein gitterartiges Layout in 3×3 Form erstellt. Dann werden die Felder mit Buttons initialisiert.
Die Felder werden für das Spiel mit Buttons initialisiert, aber andere Initialisierungen sind auch möglich. Somit kann man z. B. die Felder mit Text initialisieren. Die Initialisierung mit Text könnte man am Ende des Projekts für die Markierung der X-O Zeichen verwenden.
Da wir in diesem Spiel ein 3×3-Feld haben, benötigen wir dementsprechend 9 Buttons. Wir vergeben unserem JFrame den Namen „fenster“ und Titel „TIC TAC TOE“.
public void StartGUI() {
initialGUI();
}
public void initialGUI(){
fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//Wenn fenster schliessen, ENDE
fenster.setSize(300,300);//Fenster Default Groesse : 300x300
fenster.setLayout(new GridLayout(3,3));//Gitter-Layout 3x3
fenster.setVisible(true);
}
Hier wird die Default-Größe des JFrames eingestellt. Die beträgt 300×300 und das Gitter-Layout bleibt bei 3×3.
Beim Schließen des Fensters muss das Programm beendet werden. Dafür fügen wir JFrame.EXIT_ON_CLOSE hinzu.
public void Buttons() {
for(int i = 0; i <= 8; i++){
felder[i] = new JButton();
felder[i].setText(" ");//Default text in Feldern
felder[i].addActionListener(new felderListener());//Listner
fenster.add(felder[i]);//Gridlayout ausfuellen
fenster.pack();
}
}
Die Buttons, welche die 9 Felder initialisieren, werden insgesamt 9 Mal erstellt. Da zu Beginn des Spiels alle Felder leer sein müssen, setzen Wir “ “ als Text im jeweiligen Button ein.
Da die Felder, also Buttons, auf Clicken reagieren müssen, benötigen Wir einen ActionListner. Diese benennen wir als felderListner.
Als Letztes fügen wir die Felder in das Fenster ein.
Der restliche Inhalt folgt noch…