import java.awt.GridLayout;
import java.awt.LayoutManager;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.URL;
import javax.swing.*;
public class ttt extends JFrame implements ActionListener {
static ttt frame;
int klicks = 0;
//Die Buttons die später gebraucht werden..
JButton button1, button2, button3, button4, button5, button6, button7, button8, button9, buttonend, buttonre;
URL imgURL_aktiv = ttt.class.getResource("o.GIF"),
imgURL_passiv = ttt.class.getResource("x.GIF");
ImageIcon img_aktiv = new ImageIcon(imgURL_aktiv), //Kreis
img_passiv = new ImageIcon(imgURL_passiv); //Kreuz
private JTextField textfield;
public ttt(){
super("TicTacToe");
//Die Buttons
//Quit Funktion und andere Buttons
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new GridLayout(4,3));
button1 = new JButton("1");
button1.setActionCommand("button1");
button1.addActionListener(this);
add(button1);
button2 = new JButton("2");
button2.setActionCommand("button2");
button2.addActionListener(this);
add(button2);
button3 = new JButton("3");
button3.setActionCommand("button3");
button3.addActionListener(this);
add(button3);
button4 = new JButton("4");
button4.setActionCommand("button4");
button4.addActionListener(this);
add(button4);
button5 = new JButton("5");
button5.setActionCommand("button5");
button5.addActionListener(this);
add(button5);
button6 = new JButton("6");
button6.setActionCommand("button6");
button6.addActionListener(this);
add(button6);
button7 = new JButton("7");
button7.setActionCommand("button7");
button7.addActionListener(this);
add(button7);
button8 = new JButton("8");
button8.setActionCommand("button8");
button8.addActionListener(this);
add(button8);
button9 = new JButton("9");
button9.setActionCommand("button9");
button9.addActionListener(this);
add(button9);
// Das Textfeld
textfield = new JTextField("Spielstart");
textfield.setColumns(3);
add(textfield);
buttonre = new JButton("Refresh");
buttonre.setActionCommand("buttonre");
buttonre.addActionListener(this);
add(buttonre);
buttonend = new JButton("Quit");
buttonend.setActionCommand("buttonend");
buttonend.addActionListener(this);
add(buttonend);
//Das Frame
pack();
setSize(400,400);
setVisible(true);
}
public static void main(String[] args) {
ttt frame = new ttt();
}
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals ("buttonend")){
System.exit(0);}
// Anzahl der Klicks zaehlen
klicks +=1;
// jetzt feststellen welcher Button gedrückt wurde
JButton button = (JButton)e.getSource();
// bei geraden klicks erscheint ein O
if (klicks % 2 == 0 && klicks<9) {
button.setIcon(img_aktiv);
button.setText("O");
// bei ungeraden ein X
} else {
if (klicks <=9) {
button.setIcon(img_passiv);
button.setText("X");
}
else {;}
}
//Der Refresh Button und seine Aktionen
if (e.getActionCommand().equals ("buttonre")){
button1.setText("1");
button2.setText("2");
button3.setText("3");
button4.setText("4");
button5.setText("5");
button6.setText("6");
button7.setText("7");
button8.setText("8");
button9.setText("9");
buttonre.setText("Refresh");
buttonre.setIcon(null);
textfield.setText("Neustart.");
klicks = 0;
button1.setIcon(null);
button2.setIcon(null);
button3.setIcon(null);
button4.setIcon(null);
button5.setIcon(null);
button6.setIcon(null);
button7.setIcon(null);
button8.setIcon(null);
button9.setIcon(null);
}
//Reaktion bei Sieg, wird die klickzahl auf 10 gesetzt und man kann nicht mehr weiterspielen (ausgabe erscheint in konsole!!!!)
if (button1.getText() == button2.getText() && button1.getText() == button3.getText()){
System.out.println("Sieg in der ersten Reihe von Spieler '" +button1.getText()+"'");
klicks = 10; }
if (button4.getText() == button5.getText() && button4.getText() == button6.getText()) {
System.out.println("Sieg in der zweiten Reihe von Spieler '" +button4.getText()+"'");
klicks = 10; }
if (button7.getText() == button8.getText() && button7.getText() == button9.getText()){
System.out.println("Sieg in der ersten Reihe von Spieler '" +button7.getText()+"'");
klicks = 10; }
if (button1.getText() == button4.getText() && button4.getText() == button7.getText()){
System.out.println("Sieg in der ersten Spalte von Spieler '" +button7.getText()+"'");
klicks = 10; }
if (button2.getText() == button5.getText() && button5.getText() == button8.getText()){
System.out.println("Sieg in der zweiten Spalte von Spieler '" +button8.getText()+"'");
klicks = 10; }
if (button3.getText() == button6.getText() && button6.getText() == button9.getText()) {
System.out.println("Sieg in der dritten Spalte von Spieler '" +button9.getText()+"'");
klicks = 10; }
if ((button1.getText() == button5.getText() && button5.getText() == button9.getText())
|| (button3.getText() == button5.getText() && button7.getText() == button5.getText())){
System.out.println("Sieg in der Diagonalen von Spieler '" +button5.getText()+"'");
klicks = 10; }
//Bei unentschieden:
if (klicks == 9)
textfield.setText("Unentschieden!");
}
}