Java :: Aufgabe #235 :: Lösung #1

2 Lösungen Lösungen öffentlich
#235

Tic-Tac-Toe GUI

Profi - Java von Gelöschte Person - 01.04.2019 um 21:22 Uhr
Programmiere ein Tic-Tac-Toe Spiele mit GUI.
Moduse die es geben sollte:
1 Spieler vs. Computergegner
1 Spieler vs. 1 Spieler
#1
vote_ok
von bumbum94 (60 Punkte) - 13.05.2019 um 11:00 Uhr
Das ganze Programm ist in mehreren Dateien geschrieben.

//Main.java
Quellcode ausblenden Java-Code
package Main;
import java.awt.EventQueue;
import P2P.*;
import P2C.*;
public class Main {

	protected static int win = 0;
	protected static int loose = 0;
	protected static int draw = 0;
	protected static String s1;
	protected static String s2;
	public static void main(String[] args) {
		
		
		
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					startGUI_W();
					
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}
	public static void startGUI() {
		@SuppressWarnings("unused")
		GUI maingame = new GUI(getWin(),getLoose(),getDraw());
	}
	public static void startGUI2() {
		@SuppressWarnings("unused")
		GUI2 maingame = new GUI2(getWin(),getLoose(),getDraw());
	}
	public static void startGUI_W() {
		@SuppressWarnings("unused")
		GUI_W window = new GUI_W();
	}
	static void startGUI_2P() {
		@SuppressWarnings("unused")
		GUI_2P pvp = new GUI_2P();
	}

	public static void setNames(String name, String name2) {
		s1 = name;
		s2 = name2;
	}
	public static String gets1() {
		
		return s1;
	}
	public static String gets2() {
		
		return s2;
	}
	public static String getWin() {
		
		String count = Integer.toString(win);
		
		return count;
	}
	public static void setWin() {
		win++;
	}
	public static String getLoose() {
		
		String count = Integer.toString(loose);
		
		return count;
	}
	public static void setLoose() {
		loose++;
	}
	public static String getDraw() {

		String count = Integer.toString(draw);
		
		return count;
	}
	public static void setDraw() {
		draw++;
	}
	public static void reset() {
		
		
		win = 0;
		loose = 0;
		draw = 0;
		
		startGUI_W();
		
	}
}


//Welcome GUI
Quellcode ausblenden Java-Code
package Main;
import java.awt.BorderLayout;


import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;

import P2C.GUI_1P;
import P2P.GUI_2P;

import javax.swing.JLabel;
import javax.swing.ImageIcon;
import java.awt.Font;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

@SuppressWarnings("serial")
public class GUI_W extends JFrame {

	private JPanel contentPane;

	
	public GUI_W() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 450, 300);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		contentPane.setLayout(new BorderLayout(0, 0));
		setContentPane(contentPane);
		
		JLabel lbl_welcome = new JLabel("");
		lbl_welcome.setIcon(new ImageIcon("img/welcome.png"));
		contentPane.add(lbl_welcome, BorderLayout.NORTH);
		
		JPanel panel = new JPanel();
		contentPane.add(panel, BorderLayout.CENTER);
		panel.setLayout(null);
		
		JLabel lblWhleDenSpielmodus = new JLabel("W\u00E4hle den Spielmodus ");
		lblWhleDenSpielmodus.setFont(new Font("Wide Latin", Font.PLAIN, 20));
		lblWhleDenSpielmodus.setBounds(10, 0, 404, 65);
		panel.add(lblWhleDenSpielmodus);
		
		JButton btnSpieler = new JButton("2 Spieler");
		btnSpieler.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String s = e.getActionCommand();
				
				if ("2 Spieler".equals(s) ) {
					
					dispose();
					@SuppressWarnings("unused")
					GUI_2P game = new GUI_2P();
				}
				
				
			}
		});
		btnSpieler.setBounds(60, 76, 89, 23);
		panel.add(btnSpieler);
		
		JButton btnNewButton = new JButton("Gegen PC");
		btnNewButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String s = e.getActionCommand();
				
				if ("Gegen PC".equals(s) ) {
					
					dispose();
					@SuppressWarnings("unused")
					GUI_1P game = new GUI_1P();
				}
			}
		});
		btnNewButton.setBounds(275, 76, 99, 23);
		panel.add(btnNewButton);
		
		setVisible(true);
	}
}


//GUI für Spieler erstellung
Quellcode ausblenden Java-Code
package P2P;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import java.awt.Font;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.ImageIcon;
import javax.swing.SwingConstants;

@SuppressWarnings("serial")
public class GUI_2P extends JFrame {

	private JPanel contentPane;
	private JTextField txt_name;
	private JTextField txt_name2;

	
	public GUI_2P() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 450, 300);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		AL al =new AL(this);
		
		JLabel lblNewLabel = new JLabel("");
		lblNewLabel.setHorizontalAlignment(SwingConstants.CENTER);
		lblNewLabel.setIcon(new ImageIcon("img/2p.png"));
		lblNewLabel.setBounds(10, 11, 414, 57);
		contentPane.add(lblNewLabel);
		
		JLabel lblSpieler = new JLabel("Spieler 1:");
		lblSpieler.setFont(new Font("Tahoma", Font.PLAIN, 14));
		lblSpieler.setBounds(10, 105, 66, 29);
		contentPane.add(lblSpieler);
		
		JLabel lblSpieler_1 = new JLabel("Spieler 2:");
		lblSpieler_1.setFont(new Font("Tahoma", Font.PLAIN, 14));
		lblSpieler_1.setBounds(10, 145, 66, 29);
		contentPane.add(lblSpieler_1);
		
		txt_name = new JTextField();
		txt_name.setFont(new Font("Tahoma", Font.PLAIN, 14));
		txt_name.setBounds(86, 105, 90, 29);
		contentPane.add(txt_name);
		txt_name.setColumns(10);
		
		txt_name2 = new JTextField();
		txt_name2.setFont(new Font("Tahoma", Font.PLAIN, 14));
		txt_name2.setColumns(10);
		txt_name2.setBounds(86, 145, 90, 29);
		contentPane.add(txt_name2);
		
		JButton btnZurck = new JButton("Zur\u00FCck");
		btnZurck.setBounds(335, 227, 89, 23);
		btnZurck.addActionListener(al);
		contentPane.add(btnZurck);
		
		JButton btnStart = new JButton("Start");
		btnStart.setBounds(236, 227, 89, 23);
		btnStart.addActionListener(al);
		contentPane.add(btnStart);
		
		JButton btnReset = new JButton("Reset");
		btnReset.setBounds(10, 227, 89, 23);
		btnReset.addActionListener(al);
		contentPane.add(btnReset);
		
		setVisible(true);
	}
	void setName1(String name) {
		
		txt_name.setText(name);
	}
	void setName2(String name) {
		
		txt_name2.setText(name);
	}
	public String getName() {
		
		String name = txt_name.getText();
		
		return name;
		
	}
	public String getName2() {
		
		String name = txt_name2.getText();
		
		return name;
		
	}
}


//2 Spieler Game GUI
Quellcode ausblenden Java-Code
package P2P;


import javax.swing.JFrame;

import java.awt.Image;

import javax.swing.JPanel;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.SwingConstants;
import javax.swing.border.Border;
import javax.swing.border.LineBorder;

import Main.Main;

import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.util.ArrayList;

public class GUI {

	static JFrame frame;
	static JLabel field1, field2, field3, field4, field5, field6, field7, field8, field9;
	static JLabel win = new JLabel(Main.getWin());
	static JLabel loose = new JLabel(Main.getLoose());
	static JLabel draw = new JLabel(Main.getDraw());
	static boolean x = true;
	static ArrayList<Integer> list_p1 = new ArrayList<Integer>();
	static ArrayList<Integer> list_p2 = new ArrayList<Integer>();
	static boolean[] clicked = {false,false,false,false,false,false,false,false,false,false};
	static Border b = LineBorder.createGrayLineBorder();
	
	public GUI(String win, String loose, String draw) {
		initialize();
	}

	
	private void initialize() {
		frame = new JFrame();
		frame.setBounds(100, 100, 500, 574);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.getContentPane().setLayout(null);

		
		@SuppressWarnings("unused")
		Border ub = BorderFactory.createLoweredBevelBorder();

		JPanel panel = new JPanel();
		panel.setBounds(43, 11, 400, 400);
		frame.getContentPane().add(panel);
		panel.setLayout(null);

		field1 = new JLabel("");
		field1.setHorizontalAlignment(SwingConstants.CENTER);
		field1.addMouseListener(new Player(frame, field1, 1));

		field1.setBounds(7, 7, 125, 125);
		field1.setBorder(b);
		panel.add(field1);

		field2 = new JLabel("");
		field2.setHorizontalAlignment(SwingConstants.CENTER);
		field2.addMouseListener(new Player(frame, field2, 2));

		field2.setBounds(138, 7, 125, 125);
		field2.setBorder(b);
		panel.add(field2);

		field3 = new JLabel("");
		field3.setHorizontalAlignment(SwingConstants.CENTER);
		field3.addMouseListener(new Player(frame, field3, 3));
		field3.setBounds(269, 7, 125, 125);
		field3.setBorder(b);
		panel.add(field3);

		field4 = new JLabel("");
		field4.setHorizontalAlignment(SwingConstants.CENTER);
		field4.addMouseListener(new Player(frame, field4, 4));
		field4.setBounds(7, 138, 125, 125);
		field4.setBorder(b);
		panel.add(field4);

		field7 = new JLabel("");
		field7.setHorizontalAlignment(SwingConstants.CENTER);
		field7.addMouseListener(new Player(frame, field7, 7));
		field7.setBounds(7, 269, 125, 125);
		field7.setBorder(b);
		panel.add(field7);

		field5 = new JLabel("");
		field5.setHorizontalAlignment(SwingConstants.CENTER);
		field5.addMouseListener(new Player(frame, field5, 5));
		field5.setBounds(138, 138, 125, 125);
		field5.setBorder(b);
		panel.add(field5);

		field6 = new JLabel("");
		field6.setHorizontalAlignment(SwingConstants.CENTER);
		field6.addMouseListener(new Player(frame, field6, 6));

		field6.setBounds(269, 138, 125, 125);
		field6.setBorder(b);
		panel.add(field6);

		field8 = new JLabel("");
		field8.setHorizontalAlignment(SwingConstants.CENTER);
		field8.addMouseListener(new Player(frame, field8, 8));
		field8.setBounds(138, 269, 125, 125);
		field8.setBorder(b);
		panel.add(field8);

		field9 = new JLabel("");
		field9.setHorizontalAlignment(SwingConstants.CENTER);
		field9.addMouseListener(new Player(frame, field9, 9));
		field9.setBounds(269, 269, 125, 125);
		field9.setBorder(b);
		panel.add(field9);

		JLabel player1 = new JLabel("Spieler 1:");
		player1.setBounds(43, 430, 69, 14);
		frame.getContentPane().add(player1);

		JLabel player2 = new JLabel("Spieler 2:");
		player2.setBounds(43, 455, 69, 14);
		frame.getContentPane().add(player2);

		JLabel name1 = new JLabel(Main.gets1());
		name1.setBounds(99, 430, 70, 14);
		frame.getContentPane().add(name1);

		JLabel name2 = new JLabel(Main.gets2());
		name2.setBounds(99, 455, 70, 14);
		frame.getContentPane().add(name2);

		win.setHorizontalAlignment(SwingConstants.CENTER);
		win.setBounds(397, 430, 46, 14);
		frame.getContentPane().add(win);

		loose.setHorizontalAlignment(SwingConstants.CENTER);
		loose.setBounds(397, 455, 46, 14);
		frame.getContentPane().add(loose);

		draw.setHorizontalAlignment(SwingConstants.CENTER);
		draw.setBounds(397, 480, 46, 14);
		frame.getContentPane().add(draw);

		JLabel lbl_win = new JLabel("Gewonnen:");
		lbl_win.setHorizontalAlignment(SwingConstants.RIGHT);
		lbl_win.setBounds(302, 430, 85, 14);
		frame.getContentPane().add(lbl_win);

		JLabel lbl_loose = new JLabel("Verloren:");
		lbl_loose.setHorizontalAlignment(SwingConstants.RIGHT);
		lbl_loose.setBounds(302, 455, 85, 14);
		frame.getContentPane().add(lbl_loose);

		JLabel lbl_draw = new JLabel("Unentschieden:");
		lbl_draw.setHorizontalAlignment(SwingConstants.RIGHT);
		lbl_draw.setBounds(267, 480, 120, 14);
		frame.getContentPane().add(lbl_draw);

		JButton btnNewGame = new JButton("Neues Spiel");
		btnNewGame.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
			}
		});
		btnNewGame.setBounds(23, 490, 109, 23);
		frame.getContentPane().add(btnNewGame);
		
		frame.setVisible(true);
	}

	void setField1(int f) {

		if (f == 1) {

			ImageIcon img = new ImageIcon("img/cross.png");
			img.getImage().flush();
			img.setImage(img.getImage().getScaledInstance(125, 125, Image.SCALE_DEFAULT));
			field1.setIcon(img);
		}
	}

	static void addList_p1(int i) {

		list_p1.add(i);
	}

	static void addList_p2(int i) {

		list_p2.add(i);
	}

	static void gameWin() {

		if ((list_p1.contains(1) & list_p1.contains(2) & list_p1.contains(3))
				| (list_p1.contains(4) & list_p1.contains(5) & list_p1.contains(6))
				| (list_p1.contains(7) & list_p1.contains(8) & list_p1.contains(9))
				| (list_p1.contains(1) & list_p1.contains(4) & list_p1.contains(7))
				| (list_p1.contains(2) & list_p1.contains(5) & list_p1.contains(8))
				| (list_p1.contains(3) & list_p1.contains(6) & list_p1.contains(9))
				| (list_p1.contains(1) & list_p1.contains(5) & list_p1.contains(9))
				| (list_p1.contains(3) & list_p1.contains(5) & list_p1.contains(7))) {

			JOptionPane.showMessageDialog(null, Main.gets1()+" hat gewonnen!");
			Main.setWin();
			repaint();
		}
		if ((list_p2.contains(1) & list_p2.contains(2) & list_p2.contains(3))
				| (list_p2.contains(4) & list_p2.contains(5) & list_p2.contains(6))
				| (list_p2.contains(7) & list_p2.contains(8) & list_p2.contains(9))
				| (list_p2.contains(1) & list_p2.contains(4) & list_p2.contains(7))
				| (list_p2.contains(2) & list_p2.contains(5) & list_p2.contains(8))
				| (list_p2.contains(3) & list_p2.contains(6) & list_p2.contains(9))
				| (list_p2.contains(1) & list_p2.contains(5) & list_p2.contains(9))
				| (list_p2.contains(3) & list_p2.contains(5) & list_p2.contains(7))) {

			JOptionPane.showMessageDialog(null, Main.gets2()+"hat gewonnen!");
			Main.setLoose();
			repaint();
		}
		if (allClicked() == true) {
			JOptionPane.showMessageDialog(null, "Unentschieden!");
			Main.setDraw();
			repaint();
			
		}
	}

	static void repaint() {

		ImageIcon img = new ImageIcon("img/plain.png");

		field1.setIcon(img);
		field2.setIcon(img);
		field3.setIcon(img);
		field4.setIcon(img);
		field5.setIcon(img);
		field6.setIcon(img);
		field7.setIcon(img);
		field8.setIcon(img);
		field9.setIcon(img);

		list_p1.clear();
		list_p2.clear();

		win.setText(Main.getWin());
		loose.setText(Main.getLoose());
		draw.setText(Main.getDraw());
		setUnClicked();

		frame.repaint();
	}

	static boolean clicked(int i) {

		return clicked[i];
	}

	static void setUnClicked() {

		clicked[9] = false;
		clicked[1] = false;
		clicked[2] = false;
		clicked[3] = false;
		clicked[4] = false;
		clicked[5] = false;
		clicked[6] = false;
		clicked[7] = false;
		clicked[8] = false;
		field1.setBorder(b);
		field2.setBorder(b);
		field3.setBorder(b);
		field4.setBorder(b);
		field5.setBorder(b);
		field6.setBorder(b);
		field7.setBorder(b);
		field8.setBorder(b);
		field9.setBorder(b);
	}
static void setClicked(int i) {
	
	clicked[i] =true;
	
}
	static boolean allClicked() {
		boolean all = false;

		if (clicked[9] == true & clicked[1] == true & clicked[2] == true & clicked[3] == true & clicked[4] == true
				& clicked[5] == true & clicked[6] == true & clicked[7] == true & clicked[8] == true) {
			all = true;
		}

			return all;
	}
}


//MouseListener
Quellcode ausblenden Java-Code
package P2P;
import java.awt.Image;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.ArrayList;

import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

import javax.swing.border.Border;
import javax.swing.border.LineBorder;

public class Player implements MouseListener {
	
	JFrame frame;
	JLabel field;
	Border b = LineBorder.createGrayLineBorder();
	Border ub = BorderFactory.createLoweredBevelBorder();
	@SuppressWarnings({ "unchecked", "rawtypes" })
	ArrayList<Integer> list_p1 = new ArrayList();
	@SuppressWarnings({ "unchecked", "rawtypes" })
	ArrayList<Integer> list_p2 = new ArrayList();
	
	ImageIcon cross = new ImageIcon("img/cross.png");
	ImageIcon circle = new ImageIcon("img/circle.png");
	
	boolean clicked = false;
	int i;
	
	public Player(JFrame frame, JLabel field,int i) {
		this.frame = frame;
		this.field = field;
		cross.getImage().flush();
		cross.setImage(cross.getImage().getScaledInstance(120, 120,Image.SCALE_DEFAULT));
		circle.getImage().flush();
		circle.setImage(circle.getImage().getScaledInstance(120, 120,Image.SCALE_DEFAULT));
		this.i = i;
		
	}

	@Override
	public void mouseClicked(MouseEvent e) {
		if (GUI.clicked(i) == false) {
			if (GUI.x == true) {
				
				field.setIcon(cross);
				frame.repaint();
				field_list(i);
				GUI.x=false;
				GUI.clicked[i] = true;
				System.out.println(GUI.list_p1);
				GUI.gameWin();
			}else {
				
				field.setIcon(circle);
				frame.repaint();
				field_list(i);
				GUI.x=true;
				GUI.clicked[i] = true;
				System.out.println(GUI.list_p2);
				GUI.gameWin();
		}}
		
	}

	@Override
	public void mouseEntered(MouseEvent e) {
		if (GUI.clicked(i) == false) {
			field.setBorder(ub);
		}
	}

	@Override
	public void mouseExited(MouseEvent e) {
		if (GUI.clicked(i) == false) {
			field.setBorder(b);
		}
		
	}

	@Override
	public void mousePressed(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void mouseReleased(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}
	void field_list(int i) {
		
		if (i ==1 && GUI.x ==true) {
			GUI.addList_p1(i);
		}
		if (i ==2 && GUI.x ==true) {
			GUI.addList_p1(i);
		}
		if (i ==3 && GUI.x ==true) {
			GUI.addList_p1(i);
		}
		if (i ==4 && GUI.x ==true) {
			GUI.addList_p1(i);
		}
		if (i ==5 && GUI.x ==true) {
			GUI.addList_p1(i);
		}
		if (i ==6 && GUI.x ==true) {
			GUI.addList_p1(i);
		}
		if (i ==7 && GUI.x ==true) {
			GUI.addList_p1(i);
		}
		if (i ==8 && GUI.x ==true) {
			GUI.addList_p1(i);
		}
		if (i ==9 && GUI.x ==true) {
			GUI.addList_p1(i);
		}
		if (i ==1 && GUI.x ==false) {
			GUI.addList_p2(i);
		}
		if (i ==2 && GUI.x ==false) {
			GUI.addList_p2(i);
		}
		if (i ==3 && GUI.x ==false) {
			GUI.addList_p2(i);
		}
		if (i ==4 && GUI.x ==false) {
			GUI.addList_p2(i);
		}
		if (i ==5 && GUI.x ==false) {
			GUI.addList_p2(i);
		}
		if (i ==6 && GUI.x ==false) {
			GUI.addList_p2(i);
		}
		if (i ==7 && GUI.x ==false) {
			GUI.addList_p2(i);
		}
		if (i ==8 && GUI.x ==false) {
			GUI.addList_p2(i);
		}
		if (i ==9 && GUI.x ==false) {
			GUI.addList_p2(i);
		}
		
	}
	
}


//ActionListener
Quellcode ausblenden Java-Code
package P2P;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;



import Main.Main;

public class AL implements ActionListener {

	GUI_2P frame;
	
	public AL(GUI_2P frame) {
	
		this.frame = frame;
	}
	@Override
	public void actionPerformed(ActionEvent e) {
		
		String s = e.getActionCommand();
		
		if ("Reset".equals(s)) {
			
			frame.setName1("");
			frame.setName2("");			
		}
		if ("Start".contentEquals(s)) {
			
			Main.setNames(frame.getName(), frame.getName2());
			frame.dispose();
			Main.startGUI();
		}
		if ("Zurück".equals(s)) {
			frame.dispose();
			Main.startGUI_W();
		}
		
	}

}


//Jetz der Player vs Pc Part
//Spielererstellung
Quellcode ausblenden Java-Code
package P2C;


import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import java.awt.Font;
import java.util.Random;

import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.ImageIcon;
import javax.swing.SwingConstants;

@SuppressWarnings("serial")
public class GUI_1P extends JFrame {

	private JPanel contentPane;
	private JTextField txt_name;
	private JTextField txt_name2;

	
	public GUI_1P() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 450, 300);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		AL al =new AL(this);
		
		JLabel lblNewLabel = new JLabel("");
		lblNewLabel.setHorizontalAlignment(SwingConstants.CENTER);
		lblNewLabel.setIcon(new ImageIcon("img/1p.png"));
		lblNewLabel.setBounds(10, 11, 414, 57);
		contentPane.add(lblNewLabel);
		
		JLabel lblSpieler = new JLabel("Spieler 1:");
		lblSpieler.setHorizontalAlignment(SwingConstants.RIGHT);
		lblSpieler.setFont(new Font("Tahoma", Font.PLAIN, 14));
		lblSpieler.setBounds(10, 105, 70, 29);
		contentPane.add(lblSpieler);
		
		JLabel lblSpieler_1 = new JLabel("Spieler(PC):");
		lblSpieler_1.setFont(new Font("Tahoma", Font.PLAIN, 14));
		lblSpieler_1.setBounds(10, 145, 76, 29);
		contentPane.add(lblSpieler_1);
		
		txt_name = new JTextField();
		txt_name.setFont(new Font("Tahoma", Font.PLAIN, 14));
		txt_name.setBounds(86, 105, 90, 29);
		contentPane.add(txt_name);
		txt_name.setColumns(10);
		
		txt_name2 = new JTextField(kiName());
		txt_name2.setFont(new Font("Tahoma", Font.PLAIN, 14));
		txt_name2.setColumns(10);
		txt_name2.setBounds(86, 145, 90, 29);
		contentPane.add(txt_name2);
		
		JButton btnZurck = new JButton("Zur\u00FCck");
		btnZurck.setBounds(335, 227, 89, 23);
		btnZurck.addActionListener(al);
		contentPane.add(btnZurck);
		
		JButton btnStart = new JButton("Start");
		btnStart.setBounds(236, 227, 89, 23);
		btnStart.addActionListener(al);
		contentPane.add(btnStart);
		
		JButton btnReset = new JButton("Reset");
		btnReset.setBounds(10, 227, 89, 23);
		btnReset.addActionListener(al);
		contentPane.add(btnReset);
		
		setVisible(true);
	}
	void setName1(String name) {
		
		txt_name.setText(name);
	}
	void setName2(String name) {
		
		txt_name2.setText(name);
	}
	public String getName() {
		
		String name = txt_name.getText();
		
		return name;
		
	}
	public String getName2() {
		
		String name = txt_name2.getText();
		
		return name;
		
	}
	String kiName() {
		
		Random rand = new Random();
		 
		String[] name = {"Horst","Matilda","Christian","Magarete","Steffan","Claudia","Andreas","Moni"};
		
		int i = rand.nextInt(7);
		
		return name[i];
	}
}


//PvC Game GUI
Quellcode ausblenden Java-Code
package P2C;

import javax.swing.JFrame;
import java.awt.Image;
import javax.swing.JPanel;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.SwingConstants;
import javax.swing.border.Border;
import javax.swing.border.LineBorder;

import Main.Main;

import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.util.ArrayList;

public class GUI2 {

	static JFrame frame;
	static JLabel field1, field2, field3, field4, field5, field6, field7, field8, field9;
	static JLabel win = new JLabel(Main.getWin());
	static JLabel loose = new JLabel(Main.getLoose());
	static JLabel draw = new JLabel(Main.getDraw());
	static boolean x = true;
	static ArrayList<Integer> list_p1 = new ArrayList<Integer>();
	static ArrayList<Integer> list_p2 = new ArrayList<Integer>();
	static boolean[] clicked = {false,false,false,false,false,false,false,false,false,false};
	static Border b = LineBorder.createGrayLineBorder();
	
	public GUI2(String win, String loose, String draw) {
		initialize();
	}

	/**
	 * Initialize the contents of the frame.
	 */
	private void initialize() {
		frame = new JFrame();
		frame.setBounds(100, 100, 500, 574);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.getContentPane().setLayout(null);

		
		@SuppressWarnings("unused")
		Border ub = BorderFactory.createLoweredBevelBorder();

		JPanel panel = new JPanel();
		panel.setBounds(43, 11, 400, 400);
		frame.getContentPane().add(panel);
		panel.setLayout(null);

		field1 = new JLabel("");
		field1.setHorizontalAlignment(SwingConstants.CENTER);
		field1.addMouseListener(new Player(frame, field1, 1));

		field1.setBounds(7, 7, 125, 125);
		field1.setBorder(b);
		panel.add(field1);

		field2 = new JLabel("");
		field2.setHorizontalAlignment(SwingConstants.CENTER);
		field2.addMouseListener(new Player(frame, field2, 2));

		field2.setBounds(138, 7, 125, 125);
		field2.setBorder(b);
		panel.add(field2);

		field3 = new JLabel("");
		field3.setHorizontalAlignment(SwingConstants.CENTER);
		field3.addMouseListener(new Player(frame, field3, 3));
		field3.setBounds(269, 7, 125, 125);
		field3.setBorder(b);
		panel.add(field3);

		field4 = new JLabel("");
		field4.setHorizontalAlignment(SwingConstants.CENTER);
		field4.addMouseListener(new Player(frame, field4, 4));
		field4.setBounds(7, 138, 125, 125);
		field4.setBorder(b);
		panel.add(field4);

		field7 = new JLabel("");
		field7.setHorizontalAlignment(SwingConstants.CENTER);
		field7.addMouseListener(new Player(frame, field7, 7));
		field7.setBounds(7, 269, 125, 125);
		field7.setBorder(b);
		panel.add(field7);

		field5 = new JLabel("");
		field5.setHorizontalAlignment(SwingConstants.CENTER);
		field5.addMouseListener(new Player(frame, field5, 5));
		field5.setBounds(138, 138, 125, 125);
		field5.setBorder(b);
		panel.add(field5);

		field6 = new JLabel("");
		field6.setHorizontalAlignment(SwingConstants.CENTER);
		field6.addMouseListener(new Player(frame, field6, 6));

		field6.setBounds(269, 138, 125, 125);
		field6.setBorder(b);
		panel.add(field6);

		field8 = new JLabel("");
		field8.setHorizontalAlignment(SwingConstants.CENTER);
		field8.addMouseListener(new Player(frame, field8, 8));
		field8.setBounds(138, 269, 125, 125);
		field8.setBorder(b);
		panel.add(field8);

		field9 = new JLabel("");
		field9.setHorizontalAlignment(SwingConstants.CENTER);
		field9.addMouseListener(new Player(frame, field9, 9));
		field9.setBounds(269, 269, 125, 125);
		field9.setBorder(b);
		panel.add(field9);

		JLabel player1 = new JLabel("Spieler 1:");
		player1.setBounds(43, 430, 69, 14);
		frame.getContentPane().add(player1);

		JLabel player2 = new JLabel("Spieler 2:");
		player2.setBounds(43, 455, 69, 14);
		frame.getContentPane().add(player2);

		JLabel name1 = new JLabel(Main.gets1());
		name1.setBounds(99, 430, 70, 14);
		frame.getContentPane().add(name1);

		JLabel name2 = new JLabel(Main.gets2());
		name2.setBounds(99, 455, 70, 14);
		frame.getContentPane().add(name2);

		win.setHorizontalAlignment(SwingConstants.CENTER);
		win.setBounds(397, 430, 46, 14);
		frame.getContentPane().add(win);

		loose.setHorizontalAlignment(SwingConstants.CENTER);
		loose.setBounds(397, 455, 46, 14);
		frame.getContentPane().add(loose);

		draw.setHorizontalAlignment(SwingConstants.CENTER);
		draw.setBounds(397, 480, 46, 14);
		frame.getContentPane().add(draw);

		JLabel lbl_win = new JLabel("Gewonnen:");
		lbl_win.setHorizontalAlignment(SwingConstants.RIGHT);
		lbl_win.setBounds(302, 430, 85, 14);
		frame.getContentPane().add(lbl_win);

		JLabel lbl_loose = new JLabel("Verloren:");
		lbl_loose.setHorizontalAlignment(SwingConstants.RIGHT);
		lbl_loose.setBounds(302, 455, 85, 14);
		frame.getContentPane().add(lbl_loose);

		JLabel lbl_draw = new JLabel("Unentschieden:");
		lbl_draw.setHorizontalAlignment(SwingConstants.RIGHT);
		lbl_draw.setBounds(267, 480, 120, 14);
		frame.getContentPane().add(lbl_draw);

		JButton btnNewGame = new JButton("Neues Spiel");
		btnNewGame.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				
				String s = e.getActionCommand();
				
				if ("Neues Spiel".equals(s)) {
					frame.dispose();
					win.setText("0");
					loose.setText("0");
					draw.setText("0");
					Main.reset();
					
				}
			}
		});
		btnNewGame.setBounds(23, 490, 109, 23);
		frame.getContentPane().add(btnNewGame);
		
		frame.setVisible(true);
	}

	void setField1(int f) {

		if (f == 1) {

			ImageIcon img = new ImageIcon("img/cross.png");
			img.getImage().flush();
			img.setImage(img.getImage().getScaledInstance(125, 125, Image.SCALE_DEFAULT));
			field1.setIcon(img);
		}
	}

	static void addList_p1(int i) {

		list_p1.add(i);
	}

	static void addList_p2(int i) {

		list_p2.add(i);
	}

	static void gameWin() {

		if ((list_p1.contains(1) & list_p1.contains(2) & list_p1.contains(3))
				| (list_p1.contains(4) & list_p1.contains(5) & list_p1.contains(6))
				| (list_p1.contains(7) & list_p1.contains(8) & list_p1.contains(9))
				| (list_p1.contains(1) & list_p1.contains(4) & list_p1.contains(7))
				| (list_p1.contains(2) & list_p1.contains(5) & list_p1.contains(8))
				| (list_p1.contains(3) & list_p1.contains(6) & list_p1.contains(9))
				| (list_p1.contains(1) & list_p1.contains(5) & list_p1.contains(9))
				| (list_p1.contains(3) & list_p1.contains(5) & list_p1.contains(7))) {

			JOptionPane.showMessageDialog(null, Main.gets1()+" hat gewonnen!");
			Main.setWin();
			repaint();
		}
		if ((list_p2.contains(1) & list_p2.contains(2) & list_p2.contains(3))
				| (list_p2.contains(4) & list_p2.contains(5) & list_p2.contains(6))
				| (list_p2.contains(7) & list_p2.contains(8) & list_p2.contains(9))
				| (list_p2.contains(1) & list_p2.contains(4) & list_p2.contains(7))
				| (list_p2.contains(2) & list_p2.contains(5) & list_p2.contains(8))
				| (list_p2.contains(3) & list_p2.contains(6) & list_p2.contains(9))
				| (list_p2.contains(1) & list_p2.contains(5) & list_p2.contains(9))
				| (list_p2.contains(3) & list_p2.contains(5) & list_p2.contains(7))) {

			JOptionPane.showMessageDialog(null, Main.gets2()+" hat gewonnen!");
			Main.setLoose();
			repaint();
		}
		if (allClicked() == true) {
			JOptionPane.showMessageDialog(null, "Unentschieden!");
			Main.setDraw();
			repaint();
			
		}
	}

	static void repaint() {

		ImageIcon img = new ImageIcon("img/plain.png");

		field1.setIcon(img);
		field2.setIcon(img);
		field3.setIcon(img);
		field4.setIcon(img);
		field5.setIcon(img);
		field6.setIcon(img);
		field7.setIcon(img);
		field8.setIcon(img);
		field9.setIcon(img);

		list_p1.clear();
		list_p2.clear();

		win.setText(Main.getWin());
		loose.setText(Main.getLoose());
		draw.setText(Main.getDraw());
		setUnClicked();

		frame.repaint();
	}

	static boolean clicked(int i) {

		return clicked[i];
	}

	static void setUnClicked() {

		clicked[9] = false;
		clicked[1] = false;
		clicked[2] = false;
		clicked[3] = false;
		clicked[4] = false;
		clicked[5] = false;
		clicked[6] = false;
		clicked[7] = false;
		clicked[8] = false;
		field1.setBorder(b);
		field2.setBorder(b);
		field3.setBorder(b);
		field4.setBorder(b);
		field5.setBorder(b);
		field6.setBorder(b);
		field7.setBorder(b);
		field8.setBorder(b);
		field9.setBorder(b);
	}
static void setClicked(int i) {
	
	clicked[i] =true;
	
}
	static boolean allClicked() {
		boolean all = false;

		if (clicked[9] == true & clicked[1] == true & clicked[2] == true & clicked[3] == true & clicked[4] == true
				& clicked[5] == true & clicked[6] == true & clicked[7] == true & clicked[8] == true) {
			all = true;
		}

			return all;
	}
}


//MouseListener
Quellcode ausblenden Java-Code
package P2C;
import java.awt.Image;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.ArrayList;

import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.border.Border;
import javax.swing.border.LineBorder;

public class Player implements MouseListener {
	
	JFrame frame;
	JLabel field;
	Border b = LineBorder.createGrayLineBorder();
	Border ub = BorderFactory.createLoweredBevelBorder();
	@SuppressWarnings({ "unchecked", "rawtypes" })
	ArrayList<Integer> list_p1 = new ArrayList();
	@SuppressWarnings({ "unchecked", "rawtypes" })
	ArrayList<Integer> list_p2 = new ArrayList();
	
	ImageIcon cross = new ImageIcon("img/cross.png");
	ImageIcon circle = new ImageIcon("img/circle.png");
	
	boolean clicked = false;
	int i;
	
	public Player(JFrame frame, JLabel field,int i) {
		this.frame = frame;
		this.field = field;
		cross.getImage().flush();
		cross.setImage(cross.getImage().getScaledInstance(120, 120,Image.SCALE_DEFAULT));
		circle.getImage().flush();
		circle.setImage(circle.getImage().getScaledInstance(120, 120,Image.SCALE_DEFAULT));
		this.i = i;
		
	}

	@Override
	public void mouseClicked(MouseEvent e) {
		if (GUI2.clicked(i) == false) {
			if (GUI2.x == true) {
				
				field.setIcon(cross);
				frame.repaint();
				field_list(i);
				GUI2.x=false;
				GUI2.clicked[i] = true;
				System.out.println(GUI2.list_p1);
				GUI2.gameWin();
				@SuppressWarnings("unused")
				KI ki = new KI(frame, field, i,circle);
			}else {
				
			
		}}
		
	}

	@Override
	public void mouseEntered(MouseEvent e) {
		if (GUI2.clicked(i) == false) {
			field.setBorder(ub);
		}
	}

	@Override
	public void mouseExited(MouseEvent e) {
		if (GUI2.clicked(i) == false) {
			field.setBorder(b);
		}
		
	}

	@Override
	public void mousePressed(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void mouseReleased(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}
	void field_list(int i) {
		
		if (i ==1 && GUI2.x ==true) {
			GUI2.addList_p1(i);
		}
		if (i ==2 && GUI2.x ==true) {
			GUI2.addList_p1(i);
		}
		if (i ==3 && GUI2.x ==true) {
			GUI2.addList_p1(i);
		}
		if (i ==4 && GUI2.x ==true) {
			GUI2.addList_p1(i);
		}
		if (i ==5 && GUI2.x ==true) {
			GUI2.addList_p1(i);
		}
		if (i ==6 && GUI2.x ==true) {
			GUI2.addList_p1(i);
		}
		if (i ==7 && GUI2.x ==true) {
			GUI2.addList_p1(i);
		}
		if (i ==8 && GUI2.x ==true) {
			GUI2.addList_p1(i);
		}
		if (i ==9 && GUI2.x ==true) {
			GUI2.addList_p1(i);
		}
		if (i ==1 && GUI2.x ==false) {
			GUI2.addList_p2(i);
		}
		if (i ==2 && GUI2.x ==false) {
			GUI2.addList_p2(i);
		}
		if (i ==3 && GUI2.x ==false) {
			GUI2.addList_p2(i);
		}
		if (i ==4 && GUI2.x ==false) {
			GUI2.addList_p2(i);
		}
		if (i ==5 && GUI2.x ==false) {
			GUI2.addList_p2(i);
		}
		if (i ==6 && GUI2.x ==false) {
			GUI2.addList_p2(i);
		}
		if (i ==7 && GUI2.x ==false) {
			GUI2.addList_p2(i);
		}
		if (i ==8 && GUI2.x ==false) {
			GUI2.addList_p2(i);
		}
		if (i ==9 && GUI2.x ==false) {
			GUI2.addList_p2(i);
		}
		
	}
	
}


// KI
Quellcode ausblenden Java-Code
package P2C;

import java.util.Random;

import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.border.Border;

public class KI extends Player {

	Random rand = new Random();
	ImageIcon circle;
	Border ub = BorderFactory.createLoweredBevelBorder();
	JLabel fieldki;
	int p;

	public KI(JFrame frame, JLabel field, int i) {
		super(frame, field, i);
		play();
	}

	public KI(JFrame frame, JLabel field, int i, ImageIcon circle) {
		super(frame, field, i);
		this.circle = circle;
		play();
	}

	void play() {

//		PC gewinnmöglichkeiten werden geprüft
		if (((GUI2.list_p2.contains(2) & GUI2.list_p2.contains(3))
				|| (GUI2.list_p2.contains(4) & GUI2.list_p2.contains(7))
				|| (GUI2.list_p2.contains(5) & GUI2.list_p2.contains(9))) & GUI2.clicked[1] == false) {

			fieldki = GUI2.field1;
			p = 1;

			fieldki.setIcon(circle);
			fieldki.setBorder(ub);
			GUI2.frame.repaint();
			field_list(p);
			GUI2.x = true;
			GUI2.clicked[p] = true;
			System.out.println(GUI2.list_p2);
			GUI2.gameWin();
		} else if (((GUI2.list_p2.contains(1) & GUI2.list_p2.contains(3))
				|| (GUI2.list_p2.contains(5) & GUI2.list_p2.contains(8))) & GUI2.clicked[2] == false) {

			fieldki = GUI2.field2;
			p = 2;

			fieldki.setIcon(circle);
			fieldki.setBorder(ub);
			GUI2.frame.repaint();
			field_list(p);
			GUI2.x = true;
			GUI2.clicked[p] = true;
			System.out.println(GUI2.list_p2);
			GUI2.gameWin();

		} else if (((GUI2.list_p2.contains(1) & GUI2.list_p2.contains(2))
				|| (GUI2.list_p2.contains(6) & GUI2.list_p2.contains(9))
				|| (GUI2.list_p2.contains(5) & GUI2.list_p2.contains(7))) & GUI2.clicked[3] == false) {

			fieldki = GUI2.field3;
			p = 3;

			fieldki.setIcon(circle);
			fieldki.setBorder(ub);
			GUI2.frame.repaint();
			field_list(p);
			GUI2.x = true;
			GUI2.clicked[p] = true;
			System.out.println(GUI2.list_p2);
			GUI2.gameWin();
		} else if (((GUI2.list_p2.contains(1) & GUI2.list_p2.contains(7))
				|| (GUI2.list_p2.contains(5) & GUI2.list_p2.contains(6))) & GUI2.clicked[4] == false) {

			fieldki = GUI2.field4;
			p = 4;

			fieldki.setIcon(circle);
			fieldki.setBorder(ub);
			GUI2.frame.repaint();
			field_list(p);
			GUI2.x = true;
			GUI2.clicked[p] = true;
			System.out.println(GUI2.list_p2);
			GUI2.gameWin();

		} else if (((GUI2.list_p2.contains(1) & GUI2.list_p2.contains(9))
				|| (GUI2.list_p2.contains(2) & GUI2.list_p2.contains(8))
				|| (GUI2.list_p2.contains(3) & GUI2.list_p2.contains(7))
				|| (GUI2.list_p2.contains(4) & GUI2.list_p2.contains(6))) & GUI2.clicked[5] == false) {

			fieldki = GUI2.field5;
			p = 5;

			fieldki.setIcon(circle);
			fieldki.setBorder(ub);
			GUI2.frame.repaint();
			field_list(p);
			GUI2.x = true;
			GUI2.clicked[p] = true;
			System.out.println(GUI2.list_p2);
			GUI2.gameWin();
		} else if (((GUI2.list_p2.contains(3) & GUI2.list_p2.contains(9))
				|| (GUI2.list_p2.contains(4) & GUI2.list_p2.contains(5))) & GUI2.clicked[6] == false) {

			fieldki = GUI2.field6;
			p = 6;

			fieldki.setIcon(circle);
			fieldki.setBorder(ub);
			GUI2.frame.repaint();
			field_list(p);
			GUI2.x = true;
			GUI2.clicked[p] = true;
			System.out.println(GUI2.list_p2);
			GUI2.gameWin();
		} else if (((GUI2.list_p2.contains(1) & GUI2.list_p2.contains(4))
				|| (GUI2.list_p2.contains(3) & GUI2.list_p2.contains(5))
				|| (GUI2.list_p2.contains(8) & GUI2.list_p2.contains(9))) & GUI2.clicked[7] == false) {

			fieldki = GUI2.field7;
			p = 7;

			fieldki.setIcon(circle);
			fieldki.setBorder(ub);
			GUI2.frame.repaint();
			field_list(p);
			GUI2.x = true;
			GUI2.clicked[p] = true;
			System.out.println(GUI2.list_p2);
			GUI2.gameWin();
		} else if (((GUI2.list_p2.contains(2) & GUI2.list_p2.contains(5))
				|| (GUI2.list_p2.contains(7) & GUI2.list_p2.contains(9))) & GUI2.clicked[8] == false) {

			fieldki = GUI2.field8;
			p = 8;

			fieldki.setIcon(circle);
			fieldki.setBorder(ub);
			GUI2.frame.repaint();
			field_list(p);
			GUI2.x = true;
			GUI2.clicked[p] = true;
			System.out.println(GUI2.list_p2);
			GUI2.gameWin();
		} else if (((GUI2.list_p2.contains(1) & GUI2.list_p2.contains(5))
				|| (GUI2.list_p2.contains(3) & GUI2.list_p2.contains(6))
				|| (GUI2.list_p2.contains(7) & GUI2.list_p2.contains(8))) & GUI2.clicked[9] == false) {

			fieldki = GUI2.field9;
			p = 9;

			fieldki.setIcon(circle);
			fieldki.setBorder(ub);
			GUI2.frame.repaint();
			field_list(p);
			GUI2.x = true;
			GUI2.clicked[p] = true;
			System.out.println(GUI2.list_p2);
			GUI2.gameWin();
		}

		// Spieler gewinnmöglichkeiten werden geprüft
		else if (((GUI2.list_p1.contains(2) & GUI2.list_p1.contains(3))
				|| (GUI2.list_p1.contains(4) & GUI2.list_p1.contains(7))
				|| (GUI2.list_p1.contains(5) & GUI2.list_p1.contains(9))) & GUI2.clicked[1] == false) {

			fieldki = GUI2.field1;
			p = 1;

			fieldki.setIcon(circle);
			fieldki.setBorder(ub);
			GUI2.frame.repaint();
			field_list(p);
			GUI2.x = true;
			GUI2.clicked[p] = true;
			System.out.println(GUI2.list_p2);
			GUI2.gameWin();
		} else if (((GUI2.list_p1.contains(1) & GUI2.list_p1.contains(3))
				|| (GUI2.list_p1.contains(5) & GUI2.list_p1.contains(8))) & GUI2.clicked[2] == false) {

			fieldki = GUI2.field2;
			p = 2;

			fieldki.setIcon(circle);
			fieldki.setBorder(ub);
			GUI2.frame.repaint();
			field_list(p);
			GUI2.x = true;
			GUI2.clicked[p] = true;
			System.out.println(GUI2.list_p2);
			GUI2.gameWin();
		}

		else if (((GUI2.list_p1.contains(1) & GUI2.list_p1.contains(2))
				|| (GUI2.list_p1.contains(6) & GUI2.list_p1.contains(9))
				|| (GUI2.list_p1.contains(5) & GUI2.list_p1.contains(7))) & GUI2.clicked[3] == false) {

			fieldki = GUI2.field3;
			p = 3;

			fieldki.setIcon(circle);
			fieldki.setBorder(ub);
			GUI2.frame.repaint();
			field_list(p);
			GUI2.x = true;
			GUI2.clicked[p] = true;
			System.out.println(GUI2.list_p2);
			GUI2.gameWin();
		} else if (((GUI2.list_p1.contains(1) & GUI2.list_p1.contains(7))
				|| (GUI2.list_p1.contains(5) & GUI2.list_p1.contains(6))) & GUI2.clicked[4] == false) {

			fieldki = GUI2.field4;
			p = 4;

			fieldki.setIcon(circle);
			fieldki.setBorder(ub);
			GUI2.frame.repaint();
			field_list(p);
			GUI2.x = true;
			GUI2.clicked[p] = true;
			System.out.println(GUI2.list_p2);
			GUI2.gameWin();

		} else if (((GUI2.list_p1.contains(1) & GUI2.list_p1.contains(9))
				|| (GUI2.list_p1.contains(2) & GUI2.list_p1.contains(8))
				|| (GUI2.list_p1.contains(3) & GUI2.list_p1.contains(7))
				|| (GUI2.list_p1.contains(4) & GUI2.list_p1.contains(6))) & GUI2.clicked[5] == false) {

			fieldki = GUI2.field5;
			p = 5;

			fieldki.setIcon(circle);
			fieldki.setBorder(ub);
			GUI2.frame.repaint();
			field_list(p);
			GUI2.x = true;
			GUI2.clicked[p] = true;
			System.out.println(GUI2.list_p2);
			GUI2.gameWin();
		} else if (((GUI2.list_p1.contains(3) & GUI2.list_p1.contains(9))
				|| (GUI2.list_p1.contains(4) & GUI2.list_p1.contains(5))) & GUI2.clicked[6] == false) {

			fieldki = GUI2.field6;
			p = 6;

			fieldki.setIcon(circle);
			fieldki.setBorder(ub);
			GUI2.frame.repaint();
			field_list(p);
			GUI2.x = true;
			GUI2.clicked[p] = true;
			System.out.println(GUI2.list_p2);
			GUI2.gameWin();
		}

		else if (((GUI2.list_p1.contains(1) & GUI2.list_p1.contains(4))
				|| (GUI2.list_p1.contains(3) & GUI2.list_p1.contains(5))
				|| (GUI2.list_p1.contains(8) & GUI2.list_p1.contains(9))) & GUI2.clicked[7] == false) {

			fieldki = GUI2.field7;
			p = 7;

			fieldki.setIcon(circle);
			fieldki.setBorder(ub);
			GUI2.frame.repaint();
			field_list(p);
			GUI2.x = true;
			GUI2.clicked[p] = true;
			System.out.println(GUI2.list_p2);
			GUI2.gameWin();
		}

		else if (((GUI2.list_p1.contains(2) & GUI2.list_p1.contains(5))
				|| (GUI2.list_p1.contains(7) & GUI2.list_p1.contains(9))) & GUI2.clicked[8] == false) {

			fieldki = GUI2.field8;
			p = 8;

			fieldki.setIcon(circle);
			fieldki.setBorder(ub);
			GUI2.frame.repaint();
			field_list(p);
			GUI2.x = true;
			GUI2.clicked[p] = true;
			System.out.println(GUI2.list_p2);
			GUI2.gameWin();
		}

		else if (((GUI2.list_p1.contains(1) & GUI2.list_p1.contains(5))
				|| (GUI2.list_p1.contains(3) & GUI2.list_p1.contains(6))
				|| (GUI2.list_p1.contains(7) & GUI2.list_p1.contains(8))) & GUI2.clicked[9] == false) {

			fieldki = GUI2.field9;
			p = 9;

			fieldki.setIcon(circle);
			fieldki.setBorder(ub);
			GUI2.frame.repaint();
			field_list(p);
			GUI2.x = true;
			GUI2.clicked[p] = true;
			System.out.println(GUI2.list_p2);
			GUI2.gameWin();
		}

		else {

			int f = 1 + rand.nextInt(9);

			while (GUI2.list_p2.contains(f) | GUI2.list_p1.contains(f)) {

				f = 1 + rand.nextInt(9);
			}

			switch (f) {
			case 1:
				GUI2.field1.setIcon(circle);
				GUI2.field1.setBorder(ub);
				GUI2.frame.repaint();
				field_list(1);
				GUI2.x = true;
				GUI2.clicked[1] = true;
				System.out.println(GUI2.list_p2);
				GUI2.gameWin();
				break;
			case 2:
				GUI2.field2.setIcon(circle);
				GUI2.field2.setBorder(ub);
				GUI2.frame.repaint();
				field_list(2);
				GUI2.x = true;
				GUI2.clicked[2] = true;
				System.out.println(GUI2.list_p2);
				GUI2.gameWin();
				break;
			case 3:
				GUI2.field3.setIcon(circle);
				GUI2.field3.setBorder(ub);
				GUI2.frame.repaint();
				field_list(3);
				GUI2.x = true;
				GUI2.clicked[3] = true;
				System.out.println(GUI2.list_p2);
				GUI2.gameWin();
				break;
			case 4:
				GUI2.field4.setIcon(circle);
				GUI2.field4.setBorder(ub);
				GUI2.frame.repaint();
				field_list(4);
				GUI2.x = true;
				GUI2.clicked[4] = true;
				System.out.println(GUI2.list_p2);
				GUI2.gameWin();
				break;
			case 5:
				GUI2.field5.setIcon(circle);
				GUI2.field5.setBorder(ub);
				GUI2.frame.repaint();
				field_list(5);
				GUI2.x = true;
				GUI2.clicked[1] = true;
				System.out.println(GUI2.list_p2);
				GUI2.gameWin();
				break;
			case 6:
				GUI2.field6.setIcon(circle);
				GUI2.field6.setBorder(ub);
				GUI2.frame.repaint();
				field_list(6);
				GUI2.x = true;
				GUI2.clicked[6] = true;
				System.out.println(GUI2.list_p2);
				GUI2.gameWin();
				break;
			case 7:
				GUI2.field7.setIcon(circle);
				GUI2.field7.setBorder(ub);
				GUI2.frame.repaint();
				field_list(7);
				GUI2.x = true;
				GUI2.clicked[7] = true;
				System.out.println(GUI2.list_p2);
				GUI2.gameWin();
				break;
			case 8:
				GUI2.field8.setIcon(circle);
				GUI2.field8.setBorder(ub);
				GUI2.frame.repaint();
				field_list(8);
				GUI2.x = true;
				GUI2.clicked[8] = true;
				System.out.println(GUI2.list_p2);
				GUI2.gameWin();
				break;
			case 9:
				GUI2.field9.setIcon(circle);
				GUI2.field9.setBorder(ub);
				GUI2.frame.repaint();
				field_list(9);
				GUI2.x = true;
				GUI2.clicked[9] = true;
				System.out.println(GUI2.list_p2);
				GUI2.gameWin();
				break;

			}

		}

	}

}


//ActionListener
Quellcode ausblenden Java-Code
package P2C;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;



import Main.Main;

public class AL implements ActionListener {

	GUI_1P frame;
	
	public AL(GUI_1P frame) {
	
		this.frame = frame;
	}
	@Override
	public void actionPerformed(ActionEvent e) {
		
		String s = e.getActionCommand();
		
		if ("Reset".equals(s)) {
			
			frame.setName1("");
			frame.setName2(frame.kiName());			
		}
		if ("Start".contentEquals(s)) {
			
			Main.setNames(frame.getName(), frame.getName2());
			frame.dispose();
			Main.startGUI2();
		}
		if ("Zurück".equals(s)) {
			frame.dispose();
			Main.startGUI_W();
		}
		
	}

}


Bitte seid gnädig xD wäre bestimmt auch kompakter gegangen ich bin aber jetz erstmal froh das es läuft ^^

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben
2113170

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.