Probleme mit grafischem Vier-Gewinnt (Icons vergleichen)

rockbase

Grünschnabel
Hallo,

ich versuche mich schon seit Tagen an der Gewinnfunktion von Vier-Gewinnt. Mein Problem ist das ich die Icons die Ich eingefügt habe nicht vergleichen kann. Ich habe den Icons schon eine Beschreibung über setDescription zugewissen.
Doch ich finde keinen Weg diese miteinander zu vergleichen.
Kann mir villeicht jemand Helfen****:(
Ich poste mal die wichtigen stellen.:rolleyes:

Code:
    ...
    JLabel[][] feldLabel = new JLabel[ROWS][COLS];
    static final int ROWS = 6;
    static final int COLS = 7;
    ...

Erstellung des Speilfelds
Code:
for(int row=0; row<ROWS; row++){
	for(int col=0; col<COLS;col++)  {
                         feldGrafik=new ImageIcon("img\\feld1.gif");
                         feldGrafik.setDescription("leer");
                         feld1.add(feldLabel[row][col]=new JLabel(feldGrafik));
                    }
}

Die Steinsetzung durch Spieler
Code:
public void player1Grafik(int spalte, int zeile){
	spalte++;
 	feldGrafik = new ImageIcon("img\\Buttonred.gif");
	feldLabel[spalte][zeile].setIcon(feldGrafik);
	feldGrafik.setDescription("redButton");
	status.setText(name1+" ist an der Reihe");
 	id=0;
 	}


public void player2Grafik(int spalte, int zeile){
                spalte++;
 	feldGrafik = new ImageIcon("img\\Buttonyellow.gif");
                feldGrafik.setDescription("yellowButton");
	feldLabel[spalte][zeile].setIcon(feldGrafik);
 	status.setText(name2+" ist an der Reihe");
 	 id=1;
 	}

Danke schonmal im vorraus******:rolleyes:
 
Du findest keinen Weg 2 Strings miteinander zu vergleichen oder verstehe ich das falsch?
Strings werden mit der equals()-Methode verglichen.
 
Ne das hast du falsch verstanden. Wie man Strings vergleicht weiß ich. Mein Problem ist wie kann ich die icons im Array vergleichen?
 
also su funktioniert das nicht!!

Vielleicht erklär ich nochmal was ich eigentlich machen will. Ich möchte ein Vier Gewinnt mit grafischen Icons programmieren. Hierzu benötige ich eine Methode um die Icons miteinander vergleichen zu können. Ich posste mal den kompletten Code
 
Code:
package classes;
/**
 * @(#)GrafikFrame.java
 *
 *
 * @author
 * @version 1.00 2011/4/1
 */
import java.awt.*;
import java.awt.event.*;
import java.awt.Color.*;
import java.io.*;
import java.net.*;
import javax.imageio.ImageIO;

import java.util.*;
import javax.swing.*;
import javax.swing.JLabel;
import javax.swing.JFrame;
import javax.swing.plaf.metal.MetalIconFactory;

public class GrafikFrame extends Frame{

	Label player1 = new Label("Spieler X");
	TextField player1ein = new TextField("Bitte Namen eingeben");
	Label player2 = new Label("Spieler O");
	TextField player2ein = new TextField("Bitte Namen eingeben");
	Label status = new Label("Willkommen bei 4 Gewinnt");
	Button help = new Button("Hilfe");
	Button add1 = new Button("add");
	Button add2 = new Button("add");
	Button wurf[] = new Button[7];
	JButton[][] feldButton = new JButton[ROWS][COLS];
	JLabel[][] feldLabel = new JLabel[ROWS][COLS];
	ImageIcon feldGrafik;

	Panel player = new Panel();
	Panel feld1 = new Panel();
	Panel status1 = new Panel();

    static final int ROWS = 6;
    static final int COLS = 7;
	String name1;
	String name2;
	String palyer1bereit="false";
	String palyer2bereit="false";
 	public String sieger;
 	public String Gewinner;
 	public int siegerdurch=0;
	public int id=0;
	int feldauswahl=1;//Auswahl zwischen 2 Spielfeldern. 	
                int spalte1=5;
	int spalte2=5;
	int spalte3=5;
	int spalte4=5;
	int spalte5=5;
	int spalte6=5;
	int spalte7=5;
	String zeichen="X";
	String farbe;
    public GrafikFrame() {
    	setLayout(new BorderLayout()); //setzt das Layout in den übergebenden Frame
		feld1.setLayout(new GridLayout(7,1));
		player.setLayout(new GridLayout(2,3));
		status1.setLayout(new GridLayout(1,2));
		player.add(player1);
		player.add(player1ein);
		player.add(add1);
		player.add(player2);
		player.add(player2ein);
		player.add(add2);

		// Button Erstellung zum Einwurf
		for(int i=0; i<wurf.length; i++){
		      feld1.add(wurf[i] = new Button("V"));
		      wurf[i].setEnabled(false);
		  }
		// Feld Erstellung
		for(int row=0; row<ROWS; row++){
			for(int col=0; col<COLS;col++)  {//Auswahl zwischen 2 Spielfeldern
				if(feldauswahl==0){//ButtonFeld
					feld1.add(feldButton[row][col]=new JButton());
					feldButton[row][col].setBackground(new Color(227,227,227));
					

				}
				if(feldauswahl==1){//GrafikFeld
				//	feld1.add(feldLabel[row][col]=new JLabel(new ImageIcon("img\\feld1.gif")));
					feldGrafik=new ImageIcon("img\\feld1.gif");
					feldGrafik.setDescription("leer");
					feld1.add(feldLabel[row][col]=new JLabel(feldGrafik));
					//System.out.println(feldLabel[row][col].getDescription());

				}
			}
		}
		status1.add(status);
		status1.add(help);
		add(player, BorderLayout.NORTH);
		add(feld1, BorderLayout.CENTER);
		add(status1, BorderLayout.SOUTH);

		setVisible(true);
		setSize(700,800);
		setLocationRelativeTo(null); //setzt den Frame in die Mitte des Desktops


//============================================Mouse-Over-Effekt==========================================
	//Textfeldeingabe von Namen des Player 1 löschen
		player1ein.addMouseListener(new MouseListener() {
   			public void mouseClicked(MouseEvent e) {
       		 if(player1ein.getText().equals("Bitte Namen eingeben"))	//nimmt den Text "Bitte eingeben"
       		 	player1ein.setText("");	//setzt den Text "" also nichts an die stelle
   				 }
   				 public void mouseEntered(MouseEvent e) {}
    			 public void mouseExited(MouseEvent e) {}
    		     public void mousePressed(MouseEvent e) {}
    			 public void mouseReleased(MouseEvent e) {}
		});

	//Textfeldeingabe von Namen des Player 2 löschen
		player2ein.addMouseListener(new MouseListener() {
   			public void mouseClicked(MouseEvent e) {
       		 if(player2ein.getText().equals("Bitte Namen eingeben"))	//nimmt den Text "Bitte eingeben"
       		 	player2ein.setText("");	//setzt den Text "" also nichts an die stelle
   				 }
   				 public void mouseEntered(MouseEvent e) {}
    			 public void mouseExited(MouseEvent e) {}
    		     public void mousePressed(MouseEvent e) {}
    			 public void mouseReleased(MouseEvent e) {}
		});
//===========================================Buttenfunktionen============================================
		addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent event){
				System.exit(0);
			}
		});

		add1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent event){
				name1 = player1ein.getText();
				player1ein.setEnabled(false);
				add1.setEnabled(false);
				System.out.println("name1: "+ name1);
				controllname1();
				System.out.println("bereit1: "+palyer1bereit );
				startgame();
			}});

		add2.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent event){
				name2 = player2ein.getText();
				player2ein.setEnabled(false);
				add2.setEnabled(false);
				System.out.println("name2: "+ name2);
				controllname2();
				System.out.println("bereit2: "+palyer2bereit );
				startgame();
			}});

		help.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent event){
				AnzeigeHelpFrame F6 = new AnzeigeHelpFrame();
			}});

	  wurf[0].addActionListener(new ActionListener(){
		           		 public void actionPerformed(ActionEvent e)
		                 {
								System.out.println("Button 1");
									if(spalte1<0){
										status.setText("Spalte1 voll");
									}
									if(spalte1>=0){
										if (feldauswahl==0){
											feldButton[spalte1][0].setText(zeichen);
											spalte1--;
											switchplayer(spalte1,0);
										}
										if (feldauswahl==1){
											spalte1--;
											switchplayer(spalte1,0);
											System.out.println(feldGrafik.getDescription());
										}
									}
						}});
	  wurf[1].addActionListener(new ActionListener(){
		                 public void actionPerformed(ActionEvent e)
		                 {
								System.out.println("Button 2");
									if(spalte2<0){
										status.setText("Spalte2 voll");
									}
									if(spalte2>=0){
										if (feldauswahl==0){
											feldButton[spalte2][1].setText(zeichen);
											spalte2--;
											switchplayer(spalte2,1);
										}
										if (feldauswahl==1){
											spalte2--;
											switchplayer(spalte2,1);
										}
									}
						}});
	  wurf[2].addActionListener(new ActionListener(){
		                 public void actionPerformed(ActionEvent e)
		                 {
								System.out.println("Button3");

									if(spalte3<0){
										status.setText("Spalte3 voll");
									}
									if(spalte3>=0){
										if (feldauswahl==0){
											feldButton[spalte3][2].setText(zeichen);
											spalte3--;
											switchplayer(spalte3,2);
										}
										if (feldauswahl==1){
											spalte3--;
											switchplayer(spalte3,2);
										}
									}
						}});
	  wurf[3].addActionListener(new ActionListener(){
		                 public void actionPerformed(ActionEvent e)
		                 {
								System.out.println("Button4");
									if(spalte4<0){
										status.setText("Spalte4 voll");
									}
									if(spalte4>=0){
										if (feldauswahl==0){
											feldButton[spalte4][3].setText(zeichen);
											spalte4--;
											switchplayer(spalte4,3);
										}
										if (feldauswahl==1){
											spalte4--;
											switchplayer(spalte4,3);
										}
									}
						}});
 	  wurf[4].addActionListener(new ActionListener(){
		                 public void actionPerformed(ActionEvent e)
		                 {
								System.out.println("Button5");
									if(spalte5<0){
										status.setText("Spalte5 voll");
									}
									if(spalte5>=0){
										if (feldauswahl==0){
											feldButton[spalte5][4].setText(zeichen);
											spalte5--;
											switchplayer(spalte5,4);
										}
										if (feldauswahl==1){
											spalte5--;
											switchplayer(spalte5,4);
										}
									}
						}});
	  wurf[5].addActionListener(new ActionListener(){
		                 public void actionPerformed(ActionEvent e)
		                 {
								System.out.println("Button 6");
									if(spalte6<0){
										status.setText("Spalte6 voll");
									}
									if(spalte6>=0){
										if (feldauswahl==0){
											feldButton[spalte6][5].setText(zeichen);
											spalte6--;
											switchplayer(spalte6,5);
										}
										if (feldauswahl==1){
											spalte6--;
											switchplayer(spalte6,5);
										}
									}
						}});
	  wurf[6].addActionListener(new ActionListener(){
		                 public void actionPerformed(ActionEvent e)
		                 {
								System.out.println("Button 7");
									if(spalte7<0){
										status.setText("Spalte7 voll");
									}
									if(spalte7>=0){
										if (feldauswahl==0){
											feldButton[spalte7][6].setText(zeichen);
											spalte7--;
											switchplayer(spalte7,6);
										}
										if (feldauswahl==1){
											spalte7--;
											switchplayer(spalte7,6);
										}
									}
						}});
    }
//================================================Methoden===============================================
		public void	controllname1(){
		if(name1.equals(name2))
		{
			player1ein.setEnabled(true);
			add1.setEnabled(true);
			status.setText("Spieler X bitte einen anderer Name");
				 palyer1bereit="false";
		}
		else if(name1.equals("Bitte Namen eingeben")){
			player1ein.setEnabled(true);
			add1.setEnabled(true);
			status.setText("Spieler X bitte anmelden");
				palyer1bereit="false";
		}
		else if(name1.equals("")){
			player1ein.setEnabled(true);
			add1.setEnabled(true);
			status.setText("Spieler X hat keinen Namen angegeben");
				palyer1bereit="false";
		}
		else{
			palyer1bereit="true";
		}
	}
	public void	controllname2(){
		if(name2.equals(name1))
		{
			player2ein.setEnabled(true);
			add2.setEnabled(true);
			status.setText("Spieler O bitte einen anderer Name");

		}
	 	else if(name2.equals("Bitte Namen eingeben")){
			player2ein.setEnabled(true);
			add2.setEnabled(true);
			status.setText("Spieler O bitte anmelden");

		}
		else if(name2.equals("")){
			player2ein.setEnabled(true);
			add2.setEnabled(true);
			status.setText("Spieler O hat keinen Namen angegeben");

		}
		else {
			palyer2bereit="true";
		}

	}

	public void startgame(){
			if(palyer1bereit.equals("true")&&palyer2bereit.equals("true")){
				status.setText("Spiel gestarten");
				  try{
	     			Thread.sleep(1000);
	     			status.setText("Spiel startet in 3");
	     			Thread.sleep(1000);
	     			status.setText("Spiel startet in 2");
	     			Thread.sleep(1000);
	     			status.setText("Spiel startet in 1");
	     			Thread.sleep(1000);
	     			status.setText(name1+" ist an der Reihe");
	     			  for(int i=0; i<wurf.length; i++){
				      wurf[i].setEnabled(true);
				  		}
					}
					catch(InterruptedException e){
					}
		}
	  }

	  public void switchplayer(int spalte, int zeile){
 		if(id==1){
			if (feldauswahl==0){
				player1Button(spalte,zeile);
			}
			if (feldauswahl==1){
				player1Grafik(spalte,zeile);
			}
 		}
 		else{
 			if (feldauswahl==0){
				player2Button(spalte,zeile);
 			}
 			if (feldauswahl==1){
				player2Grafik(spalte,zeile);
			}
 		}
 		if (feldauswahl==0){
 			IsGameOverButton();
 			}
 		if (feldauswahl==1){
			IsGameOverGrafik();
 			}
 		System.out.println(feldLabel[0][0]);
 	//	feldLabel[zeile+1][spalte].setText("red");
 		  }
 //Setzt die Eingaben der Spieler beim ButtonFeld
 	public void	player1Button(int spalte, int zeile){
 		 	zeichen="X";
 		 	spalte++;
  			feldButton[spalte][zeile].setBackground(new Color(0,0,205));
 			status.setText(name1+" ist an der Reihe");
 			id=0;

 	}
 	public void	player2Button(int spalte, int zeile){
 		 	zeichen="O";
 		 	spalte++;
			feldButton[spalte][zeile].setBackground(new Color(255,69,0));
 			status.setText(name2+" ist an der Reihe");
 	 		id=1;
 	}
 //Setzt die Eingaben der Spieler beim GrafikFeld
 	public void	player1Grafik(int spalte, int zeile){
			zeichen="X";
 		 	spalte++;
 		 	//feldLabel[spalte][zeile].setIcon(redButton);
 		 	feldGrafik = new ImageIcon("img\\Buttonred.gif");
			feldLabel[spalte][zeile].setIcon(feldGrafik);
			feldGrafik.setDescription("redButton");
			//System.out.println(""+redButton.getDescription());
 			status.setText(name1+" ist an der Reihe");
 			id=0;
 		//	System.out.println(feldLabel[spalte][zeile].getIcon(feldGrafik.getDescription());


 	}
 	public void	player2Grafik(int spalte, int zeile){

 		 	spalte++;
// 		 	feldLabel[spalte][zeile].setIcon(yellowButton);
 		 	feldGrafik = new ImageIcon("img\\Buttonyellow.gif");
 		 	feldGrafik.setDescription("yellowButton");
			feldLabel[spalte][zeile].setIcon(feldGrafik);
 			status.setText(name2+" ist an der Reihe");
 	 		id=1;
 	 	//	System.out.println(feldGrafik.getDescription());
 	}
//Siegerfunktion des GrafikFelds
	public void IsGameOverGrafik(){
                       //Hier benötige ich eine Funktion wo ich die Icons überprüfe
	}
//Siegerfunktion des ButtonFelds
 	public void IsGameOverButton(){

			System.out.println("IsGameOver");
			//Zeilenüberprüfung
			for(int zeile = 0; zeile < 3;zeile++){		//feld[6][7]
				for(int spalte = 0; spalte < 7; spalte++){
					//System.out.println("Zeilenüberprüfung");
					if(feldButton[zeile][spalte].getText()=="X" && feldButton[zeile+1][spalte].getText()=="X" &&
						feldButton[zeile+2][spalte].getText()=="X" && feldButton[zeile+3][spalte].getText()=="X")
						{
							status.setText(name1+" hat 4 in einer Zeile");
							siegerdurch=1;
							playerXwin();
						}
					if(feldButton[zeile][spalte].getText()=="O" && feldButton[zeile+1][spalte].getText()=="O" &&
						feldButton[zeile+2][spalte].getText()=="O" && feldButton[zeile+3][spalte].getText()=="O")
						{
							status.setText(name2+" hat 4 in einer Zeile");
							siegerdurch=1;
							playerOwin();
						}

				}
			}
			//Spaltenüberprüfung
			for(int zeilesp = 0; zeilesp < 6;zeilesp++){		//feld[6][7]
				for(int spaltesp = 0; spaltesp < 4; spaltesp++){ //-den 4 spalten sonst geht er aus dem array
				//	System.out.println("spaltenüberprüfung");
					if(feldButton[zeilesp][spaltesp].getText()=="X" && feldButton[zeilesp][spaltesp+1].getText()=="X" &&
						feldButton[zeilesp][spaltesp+2].getText()=="X" && feldButton[zeilesp][spaltesp+3].getText()=="X")
						{
							status.setText(name1+" hat 4 in einer Spalte");
							siegerdurch=2;
							playerXwin();
						}
					if(feldButton[zeilesp][spaltesp].getText()=="O" && feldButton[zeilesp][spaltesp+1].getText()=="O" &&
						feldButton[zeilesp][spaltesp+2].getText()=="O" && feldButton[zeilesp][spaltesp+3].getText()=="O")
						{
							status.setText(name2+" hat 4 in einer Spalte");
							siegerdurch=2;
							playerOwin();
						}
				}
			}
			//Diagonalüberprüfung ObenLinks->UntenRechts
			for(int zeiledia1 = 0; zeiledia1 < 3;zeiledia1++){		//feld[6][7]
				for(int spaltedia1 = 0; spaltedia1 < 4; spaltedia1++){
					//System.out.println("diagonalüberprüfung");
					if(feldButton[zeiledia1][spaltedia1].getText()=="X" && feldButton[zeiledia1+1][spaltedia1+1].getText()=="X" &&
						feldButton[zeiledia1+2][spaltedia1+2].getText()=="X" && feldButton[zeiledia1+3][spaltedia1+3].getText()=="X")
						{
							status.setText(name1+" hat 4 in der diagonale ObenLinks->UntenRechts");
							siegerdurch=3;
							playerXwin();
						}
					if(feldButton[zeiledia1][spaltedia1].getText()=="O" && feldButton[zeiledia1+1][spaltedia1+1].getText()=="O" &&
						feldButton[zeiledia1+2][spaltedia1+2].getText()=="O" && feldButton[zeiledia1+3][spaltedia1+3].getText()=="O")
						{
							status.setText(name2+" hat 4 in der diagonale ObenLinks->UntenRechts");
							siegerdurch=3;
							playerOwin();
						}

					}
			}
			//Diagonalüberprüfung UntenLinks->ObenRechts
			for(int zeiledia2 = 0; zeiledia2 < 3;zeiledia2++){		//feld[6][7]
				for(int spaltedia2 = 0; spaltedia2 < 6; spaltedia2++){
					//System.out.println("diagonalüberprüfung");
					if(feldButton[zeiledia2+3][spaltedia2].getText()=="X" && feldButton[zeiledia2+2][spaltedia2+1].getText()=="X" &&
						feldButton[zeiledia2+1][spaltedia2+2].getText()=="X" && feldButton[zeiledia2][spaltedia2+3].getText()=="X")
						{
							status.setText(name1+" hat 4 in der diagonale UntenLinks->ObenRechts");
							siegerdurch=4;
							playerXwin();
						}
					if(feldButton[zeiledia2+3][spaltedia2].getText()=="O" && feldButton[zeiledia2+2][spaltedia2+1].getText()=="O" &&
						feldButton[zeiledia2+1][spaltedia2+2].getText()=="O" && feldButton[zeiledia2][spaltedia2+3].getText()=="O")
						{
							status.setText(name2+" hat 4 in der diagonale UntenLinks->ObenRechts");
							siegerdurch=4;
							playerOwin();
						}
					}

				}
	}
  private void playerXwin(){

  	for(int i=0; i<wurf.length; i++){
		wurf[i].setEnabled(false);
			 }
			sieger=name1;
			GameOver();
  }
  private void playerOwin(){

  	for(int i=0; i<wurf.length; i++){
		wurf[i].setEnabled(false);
			 }
			GameOver();
			sieger=name2;
  }
  public void spielfeld(){

  }

   public void GameOver(){
	try{
		Thread.sleep(5000);
		SiegerFrame F3 = new SiegerFrame();
	}
	catch (InterruptedException e){
	}
 }
//================================================Klassen===============================================
		class SiegerFrame extends Frame{

		Label oben = new Label("Game Over");
		Label leer = new Label();
		Label sieger1 = new Label("Sieger ist:");
		Label sieger2 = new Label();
		Label durch1 = new Label("Gewonnen durch:");
		Label durch2 = new Label();
		Button main = new Button("Hauptmenu");
		Button newgame = new Button("neues Spiel");
		Button exit = new Button("Ende");
		Panel p5 = new Panel();
		Panel p6 = new Panel();
		Panel p7 = new Panel();
		JFrame applikation;
     	Container container;

			public SiegerFrame(){
     	  	applikation = new JFrame("Sieger");
     	  	container = applikation.getContentPane();
			applikation.setLayout(new BorderLayout()); //setzt das Layout in den übergebenden Frame
			p5.setLayout(new GridLayout(1,1));
			p6.setLayout(new GridLayout(2,2));
			p7.setLayout(new GridLayout(3,1));
			applikation.add(p5, BorderLayout.NORTH);
			applikation.add(p6, BorderLayout.CENTER);
			applikation.add(p7, BorderLayout.SOUTH);
			p5.add(oben);
			p6.add(sieger1);
			p6.add(sieger2);
			p6.add(durch1);
			SiegerdurchMethode();
			p6.add(durch2);
			p7.add(main);
			p7.add(newgame);
			p7.add(exit);
			applikation.setUndecorated(true); //obere Leiste mit X ausschalten
			applikation.pack();
			//applikation.setContentPane(new BackgroundPanel());
			applikation.setVisible(true);
			applikation.setLocationRelativeTo(null); //setzt den Frame in die Mitte des Desktops
			sieger2.setText(""+sieger);
				main.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent f) {
						AnzeigeMenuFrame F1 = new AnzeigeMenuFrame();
							}
					});
				newgame.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent f) {
						clear();
						applikation.setVisible(false);
							}
					});
				exit.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent f) {
						System.exit(0);
							}
					});
			}
			public void SiegerdurchMethode(){
				if(siegerdurch==1){
					durch2.setText("4 in einer Zeile");
				}
				if(siegerdurch==2){
					durch2.setText("4 in einer Spalte");
				}
				if(siegerdurch==3){
					durch2.setText("4 in der diagonale ObenLinks->UntenRechts");
				}
				if(siegerdurch==4){
					durch2.setText("4 in der diagonale UntenLinks->ObenRechts");
				}
			}
	 }
	 	public void clear(){

		for(int row=0; row<ROWS; row++){
			for(int col=0; col<COLS;col++)  {
				feldButton[row][col].setBackground(new Color(227,227,227));
				feldButton[row][col].setText("");
			}
		}
		for(int i=0; i<wurf.length; i++){
			wurf[i].setEnabled(false);
		}
		player1ein.setEnabled(true);
		player2ein.setEnabled(true);
		add1.setEnabled(true);
		add2.setEnabled(true);
		spalte1=5;
		spalte2=5;
		spalte3=5;
		spalte4=5;
		spalte5=5;
		spalte6=5;
		spalte7=5;
		player1ein.setText("Bitte Namen eingeben");
		player2ein.setText("Bitte Namen eingeben");
		palyer1bereit="false";
		palyer2bereit="false";
		siegerdurch=0;
		id=0;
		zeichen="X";
		status.setText("Neues Spiel geladen");

	}
}
 
Poste deinen code doch bitte in java-Tags, fuer Syntax-Highlighting.
Wieso stopfst du alles in eine Klasse?

Dein ganzes
Java:
    wurf[...].addActionListener
Sieht sehr seltsam aus und koennte mit einer for-schleife geloest werden.

Hierzu benötige ich eine Methode um die Icons miteinander vergleichen zu können
Du hast doch extra eine description gesetzt zum Vergleichen, vergleiche diese miteiander und gut ist?
Zeige doch ansonsten genau den Stueck code, wo du vergleichen willst, bzw wo dein momentaner code zum Vergleichen ist, damit wir schauen koennen warum es net geht.
 
So erstmal den Code von mir als Javacode gepostet.

Java:
package classes;
/**
 * @(#)GrafikFrame.java
 *
 *
 * @author
 * @version 1.00 2011/4/1
 */
import java.awt.*;
import java.awt.event.*;
import java.awt.Color.*;
import java.io.*;
import java.net.*;
import javax.imageio.ImageIO;
 
import java.util.*;
import javax.swing.*;
import javax.swing.JLabel;
import javax.swing.JFrame;
import javax.swing.plaf.metal.MetalIconFactory;
 
public class GrafikFrame extends Frame{
 
    Label player1 = new Label("Spieler X");
    TextField player1ein = new TextField("Bitte Namen eingeben");
    Label player2 = new Label("Spieler O");
    TextField player2ein = new TextField("Bitte Namen eingeben");
    Label status = new Label("Willkommen bei 4 Gewinnt");
    Button help = new Button("Hilfe");
    Button add1 = new Button("add");
    Button add2 = new Button("add");
    Button wurf[] = new Button[7];
    JButton[][] feldButton = new JButton[ROWS][COLS];
    JLabel[][] feldLabel = new JLabel[ROWS][COLS];
    ImageIcon feldGrafik;
 
    Panel player = new Panel();
    Panel feld1 = new Panel();
    Panel status1 = new Panel();
 
    static final int ROWS = 6;
    static final int COLS = 7;
    String name1;
    String name2;
    String palyer1bereit="false";
    String palyer2bereit="false";
    public String sieger;
    public String Gewinner;
    public int siegerdurch=0;
    public int id=0;
    int feldauswahl=1;//Auswahl zwischen 2 Spielfeldern.    
                int spalte1=5;
    int spalte2=5;
    int spalte3=5;
    int spalte4=5;
    int spalte5=5;
    int spalte6=5;
    int spalte7=5;
    String zeichen="X";
    String farbe;
    public GrafikFrame() {
        setLayout(new BorderLayout()); //setzt das Layout in den übergebenden Frame
        feld1.setLayout(new GridLayout(7,1));
        player.setLayout(new GridLayout(2,3));
        status1.setLayout(new GridLayout(1,2));
        player.add(player1);
        player.add(player1ein);
        player.add(add1);
        player.add(player2);
        player.add(player2ein);
        player.add(add2);
 
        // Button Erstellung zum Einwurf
        for(int i=0; i<wurf.length; i++){
              feld1.add(wurf[i] = new Button("V"));
              wurf[i].setEnabled(false);
          }
        // Feld Erstellung
        for(int row=0; row<ROWS; row++){
            for(int col=0; col<COLS;col++)  {//Auswahl zwischen 2 Spielfeldern
                if(feldauswahl==0){//ButtonFeld
                    feld1.add(feldButton[row][col]=new JButton());
                    feldButton[row][col].setBackground(new Color(227,227,227));
                    
 
                }
                if(feldauswahl==1){//GrafikFeld
                //  feld1.add(feldLabel[row][col]=new JLabel(new ImageIcon("img\\feld1.gif")));
                    feldGrafik=new ImageIcon("img\\feld1.gif");
                    feldGrafik.setDescription("leer");
                    feld1.add(feldLabel[row][col]=new JLabel(feldGrafik));
                    //System.out.println(feldLabel[row][col].getDescription());
 
                }
            }
        }
        status1.add(status);
        status1.add(help);
        add(player, BorderLayout.NORTH);
        add(feld1, BorderLayout.CENTER);
        add(status1, BorderLayout.SOUTH);
 
        setVisible(true);
        setSize(700,800);
        setLocationRelativeTo(null); //setzt den Frame in die Mitte des Desktops
 
 
//============================================Mouse-Over-Effekt==========================================
    //Textfeldeingabe von Namen des Player 1 löschen
        player1ein.addMouseListener(new MouseListener() {
            public void mouseClicked(MouseEvent e) {
             if(player1ein.getText().equals("Bitte Namen eingeben"))    //nimmt den Text "Bitte eingeben"
                player1ein.setText(""); //setzt den Text "" also nichts an die stelle
                 }
                 public void mouseEntered(MouseEvent e) {}
                 public void mouseExited(MouseEvent e) {}
                 public void mousePressed(MouseEvent e) {}
                 public void mouseReleased(MouseEvent e) {}
        });
 
    //Textfeldeingabe von Namen des Player 2 löschen
        player2ein.addMouseListener(new MouseListener() {
            public void mouseClicked(MouseEvent e) {
             if(player2ein.getText().equals("Bitte Namen eingeben"))    //nimmt den Text "Bitte eingeben"
                player2ein.setText(""); //setzt den Text "" also nichts an die stelle
                 }
                 public void mouseEntered(MouseEvent e) {}
                 public void mouseExited(MouseEvent e) {}
                 public void mousePressed(MouseEvent e) {}
                 public void mouseReleased(MouseEvent e) {}
        });
//===========================================Buttenfunktionen============================================
        addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent event){
                System.exit(0);
            }
        });
 
        add1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent event){
                name1 = player1ein.getText();
                player1ein.setEnabled(false);
                add1.setEnabled(false);
                System.out.println("name1: "+ name1);
                controllname1();
                System.out.println("bereit1: "+palyer1bereit );
                startgame();
            }});
 
        add2.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent event){
                name2 = player2ein.getText();
                player2ein.setEnabled(false);
                add2.setEnabled(false);
                System.out.println("name2: "+ name2);
                controllname2();
                System.out.println("bereit2: "+palyer2bereit );
                startgame();
            }});
 
        help.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent event){
                AnzeigeHelpFrame F6 = new AnzeigeHelpFrame();
            }});
 
      wurf[0].addActionListener(new ActionListener(){
                         public void actionPerformed(ActionEvent e)
                         {
                                System.out.println("Button 1");
                                    if(spalte1<0){
                                        status.setText("Spalte1 voll");
                                    }
                                    if(spalte1>=0){
                                        if (feldauswahl==0){
                                            feldButton[spalte1][0].setText(zeichen);
                                            spalte1--;
                                            switchplayer(spalte1,0);
                                        }
                                        if (feldauswahl==1){
                                            spalte1--;
                                            switchplayer(spalte1,0);
                                            System.out.println(feldGrafik.getDescription());
                                        }
                                    }
                        }});
      wurf[1].addActionListener(new ActionListener(){
                         public void actionPerformed(ActionEvent e)
                         {
                                System.out.println("Button 2");
                                    if(spalte2<0){
                                        status.setText("Spalte2 voll");
                                    }
                                    if(spalte2>=0){
                                        if (feldauswahl==0){
                                            feldButton[spalte2][1].setText(zeichen);
                                            spalte2--;
                                            switchplayer(spalte2,1);
                                        }
                                        if (feldauswahl==1){
                                            spalte2--;
                                            switchplayer(spalte2,1);
                                        }
                                    }
                        }});
      wurf[2].addActionListener(new ActionListener(){
                         public void actionPerformed(ActionEvent e)
                         {
                                System.out.println("Button3");
 
                                    if(spalte3<0){
                                        status.setText("Spalte3 voll");
                                    }
                                    if(spalte3>=0){
                                        if (feldauswahl==0){
                                            feldButton[spalte3][2].setText(zeichen);
                                            spalte3--;
                                            switchplayer(spalte3,2);
                                        }
                                        if (feldauswahl==1){
                                            spalte3--;
                                            switchplayer(spalte3,2);
                                        }
                                    }
                        }});
      wurf[3].addActionListener(new ActionListener(){
                         public void actionPerformed(ActionEvent e)
                         {
                                System.out.println("Button4");
                                    if(spalte4<0){
                                        status.setText("Spalte4 voll");
                                    }
                                    if(spalte4>=0){
                                        if (feldauswahl==0){
                                            feldButton[spalte4][3].setText(zeichen);
                                            spalte4--;
                                            switchplayer(spalte4,3);
                                        }
                                        if (feldauswahl==1){
                                            spalte4--;
                                            switchplayer(spalte4,3);
                                        }
                                    }
                        }});
      wurf[4].addActionListener(new ActionListener(){
                         public void actionPerformed(ActionEvent e)
                         {
                                System.out.println("Button5");
                                    if(spalte5<0){
                                        status.setText("Spalte5 voll");
                                    }
                                    if(spalte5>=0){
                                        if (feldauswahl==0){
                                            feldButton[spalte5][4].setText(zeichen);
                                            spalte5--;
                                            switchplayer(spalte5,4);
                                        }
                                        if (feldauswahl==1){
                                            spalte5--;
                                            switchplayer(spalte5,4);
                                        }
                                    }
                        }});
      wurf[5].addActionListener(new ActionListener(){
                         public void actionPerformed(ActionEvent e)
                         {
                                System.out.println("Button 6");
                                    if(spalte6<0){
                                        status.setText("Spalte6 voll");
                                    }
                                    if(spalte6>=0){
                                        if (feldauswahl==0){
                                            feldButton[spalte6][5].setText(zeichen);
                                            spalte6--;
                                            switchplayer(spalte6,5);
                                        }
                                        if (feldauswahl==1){
                                            spalte6--;
                                            switchplayer(spalte6,5);
                                        }
                                    }
                        }});
      wurf[6].addActionListener(new ActionListener(){
                         public void actionPerformed(ActionEvent e)
                         {
                                System.out.println("Button 7");
                                    if(spalte7<0){
                                        status.setText("Spalte7 voll");
                                    }
                                    if(spalte7>=0){
                                        if (feldauswahl==0){
                                            feldButton[spalte7][6].setText(zeichen);
                                            spalte7--;
                                            switchplayer(spalte7,6);
                                        }
                                        if (feldauswahl==1){
                                            spalte7--;
                                            switchplayer(spalte7,6);
                                        }
                                    }
                        }});
    }
//================================================Methoden===============================================
        public void controllname1(){
        if(name1.equals(name2))
        {
            player1ein.setEnabled(true);
            add1.setEnabled(true);
            status.setText("Spieler X bitte einen anderer Name");
                 palyer1bereit="false";
        }
        else if(name1.equals("Bitte Namen eingeben")){
            player1ein.setEnabled(true);
            add1.setEnabled(true);
            status.setText("Spieler X bitte anmelden");
                palyer1bereit="false";
        }
        else if(name1.equals("")){
            player1ein.setEnabled(true);
            add1.setEnabled(true);
            status.setText("Spieler X hat keinen Namen angegeben");
                palyer1bereit="false";
        }
        else{
            palyer1bereit="true";
        }
    }
    public void controllname2(){
        if(name2.equals(name1))
        {
            player2ein.setEnabled(true);
            add2.setEnabled(true);
            status.setText("Spieler O bitte einen anderer Name");
 
        }
        else if(name2.equals("Bitte Namen eingeben")){
            player2ein.setEnabled(true);
            add2.setEnabled(true);
            status.setText("Spieler O bitte anmelden");
 
        }
        else if(name2.equals("")){
            player2ein.setEnabled(true);
            add2.setEnabled(true);
            status.setText("Spieler O hat keinen Namen angegeben");
 
        }
        else {
            palyer2bereit="true";
        }
 
    }
 
    public void startgame(){
            if(palyer1bereit.equals("true")&&palyer2bereit.equals("true")){
                status.setText("Spiel gestarten");
                  try{
                    Thread.sleep(1000);
                    status.setText("Spiel startet in 3");
                    Thread.sleep(1000);
                    status.setText("Spiel startet in 2");
                    Thread.sleep(1000);
                    status.setText("Spiel startet in 1");
                    Thread.sleep(1000);
                    status.setText(name1+" ist an der Reihe");
                      for(int i=0; i<wurf.length; i++){
                      wurf[i].setEnabled(true);
                        }
                    }
                    catch(InterruptedException e){
                    }
        }
      }
 
      public void switchplayer(int spalte, int zeile){
        if(id==1){
            if (feldauswahl==0){
                player1Button(spalte,zeile);
            }
            if (feldauswahl==1){
                player1Grafik(spalte,zeile);
            }
        }
        else{
            if (feldauswahl==0){
                player2Button(spalte,zeile);
            }
            if (feldauswahl==1){
                player2Grafik(spalte,zeile);
            }
        }
        if (feldauswahl==0){
            IsGameOverButton();
            }
        if (feldauswahl==1){
            IsGameOverGrafik();
            }
        System.out.println(feldLabel[0][0]);
    //  feldLabel[zeile+1][spalte].setText("red");
          }
 //Setzt die Eingaben der Spieler beim ButtonFeld
    public void player1Button(int spalte, int zeile){
            zeichen="X";
            spalte++;
            feldButton[spalte][zeile].setBackground(new Color(0,0,205));
            status.setText(name1+" ist an der Reihe");
            id=0;
 
    }
    public void player2Button(int spalte, int zeile){
            zeichen="O";
            spalte++;
            feldButton[spalte][zeile].setBackground(new Color(255,69,0));
            status.setText(name2+" ist an der Reihe");
            id=1;
    }
 //Setzt die Eingaben der Spieler beim GrafikFeld
    public void player1Grafik(int spalte, int zeile){
            zeichen="X";
            spalte++;
            //feldLabel[spalte][zeile].setIcon(redButton);
            feldGrafik = new ImageIcon("img\\Buttonred.gif");
            feldLabel[spalte][zeile].setIcon(feldGrafik);
            feldGrafik.setDescription("redButton");
            //System.out.println(""+redButton.getDescription());
            status.setText(name1+" ist an der Reihe");
            id=0;
        //  System.out.println(feldLabel[spalte][zeile].getIcon(feldGrafik.getDescription());
 
 
    }
    public void player2Grafik(int spalte, int zeile){
 
            spalte++;
//          feldLabel[spalte][zeile].setIcon(yellowButton);
            feldGrafik = new ImageIcon("img\\Buttonyellow.gif");
            feldGrafik.setDescription("yellowButton");
            feldLabel[spalte][zeile].setIcon(feldGrafik);
            status.setText(name2+" ist an der Reihe");
            id=1;
        //  System.out.println(feldGrafik.getDescription());
    }
//Siegerfunktion des GrafikFelds
    public void IsGameOverGrafik(){
                       //Hier benötige ich eine Funktion wo ich die Icons überprüfe
    }
//Siegerfunktion des ButtonFelds
    public void IsGameOverButton(){
 
            System.out.println("IsGameOver");
            //Zeilenüberprüfung
            for(int zeile = 0; zeile < 3;zeile++){      //feld[6][7]
                for(int spalte = 0; spalte < 7; spalte++){
                    //System.out.println("Zeilenüberprüfung");
                    if(feldButton[zeile][spalte].getText()=="X" && feldButton[zeile+1][spalte].getText()=="X" &&
                        feldButton[zeile+2][spalte].getText()=="X" && feldButton[zeile+3][spalte].getText()=="X")
                        {
                            status.setText(name1+" hat 4 in einer Zeile");
                            siegerdurch=1;
                            playerXwin();
                        }
                    if(feldButton[zeile][spalte].getText()=="O" && feldButton[zeile+1][spalte].getText()=="O" &&
                        feldButton[zeile+2][spalte].getText()=="O" && feldButton[zeile+3][spalte].getText()=="O")
                        {
                            status.setText(name2+" hat 4 in einer Zeile");
                            siegerdurch=1;
                            playerOwin();
                        }
 
                }
            }
            //Spaltenüberprüfung
            for(int zeilesp = 0; zeilesp < 6;zeilesp++){        //feld[6][7]
                for(int spaltesp = 0; spaltesp < 4; spaltesp++){ //-den 4 spalten sonst geht er aus dem array
                //  System.out.println("spaltenüberprüfung");
                    if(feldButton[zeilesp][spaltesp].getText()=="X" && feldButton[zeilesp][spaltesp+1].getText()=="X" &&
                        feldButton[zeilesp][spaltesp+2].getText()=="X" && feldButton[zeilesp][spaltesp+3].getText()=="X")
                        {
                            status.setText(name1+" hat 4 in einer Spalte");
                            siegerdurch=2;
                            playerXwin();
                        }
                    if(feldButton[zeilesp][spaltesp].getText()=="O" && feldButton[zeilesp][spaltesp+1].getText()=="O" &&
                        feldButton[zeilesp][spaltesp+2].getText()=="O" && feldButton[zeilesp][spaltesp+3].getText()=="O")
                        {
                            status.setText(name2+" hat 4 in einer Spalte");
                            siegerdurch=2;
                            playerOwin();
                        }
                }
            }
            //Diagonalüberprüfung ObenLinks->UntenRechts
            for(int zeiledia1 = 0; zeiledia1 < 3;zeiledia1++){      //feld[6][7]
                for(int spaltedia1 = 0; spaltedia1 < 4; spaltedia1++){
                    //System.out.println("diagonalüberprüfung");
                    if(feldButton[zeiledia1][spaltedia1].getText()=="X" && feldButton[zeiledia1+1][spaltedia1+1].getText()=="X" &&
                        feldButton[zeiledia1+2][spaltedia1+2].getText()=="X" && feldButton[zeiledia1+3][spaltedia1+3].getText()=="X")
                        {
                            status.setText(name1+" hat 4 in der diagonale ObenLinks->UntenRechts");
                            siegerdurch=3;
                            playerXwin();
                        }
                    if(feldButton[zeiledia1][spaltedia1].getText()=="O" && feldButton[zeiledia1+1][spaltedia1+1].getText()=="O" &&
                        feldButton[zeiledia1+2][spaltedia1+2].getText()=="O" && feldButton[zeiledia1+3][spaltedia1+3].getText()=="O")
                        {
                            status.setText(name2+" hat 4 in der diagonale ObenLinks->UntenRechts");
                            siegerdurch=3;
                            playerOwin();
                        }
 
                    }
            }
            //Diagonalüberprüfung UntenLinks->ObenRechts
            for(int zeiledia2 = 0; zeiledia2 < 3;zeiledia2++){      //feld[6][7]
                for(int spaltedia2 = 0; spaltedia2 < 6; spaltedia2++){
                    //System.out.println("diagonalüberprüfung");
                    if(feldButton[zeiledia2+3][spaltedia2].getText()=="X" && feldButton[zeiledia2+2][spaltedia2+1].getText()=="X" &&
                        feldButton[zeiledia2+1][spaltedia2+2].getText()=="X" && feldButton[zeiledia2][spaltedia2+3].getText()=="X")
                        {
                            status.setText(name1+" hat 4 in der diagonale UntenLinks->ObenRechts");
                            siegerdurch=4;
                            playerXwin();
                        }
                    if(feldButton[zeiledia2+3][spaltedia2].getText()=="O" && feldButton[zeiledia2+2][spaltedia2+1].getText()=="O" &&
                        feldButton[zeiledia2+1][spaltedia2+2].getText()=="O" && feldButton[zeiledia2][spaltedia2+3].getText()=="O")
                        {
                            status.setText(name2+" hat 4 in der diagonale UntenLinks->ObenRechts");
                            siegerdurch=4;
                            playerOwin();
                        }
                    }
 
                }
    }
  private void playerXwin(){
 
    for(int i=0; i<wurf.length; i++){
        wurf[i].setEnabled(false);
             }
            sieger=name1;
            GameOver();
  }
  private void playerOwin(){
 
    for(int i=0; i<wurf.length; i++){
        wurf[i].setEnabled(false);
             }
            GameOver();
            sieger=name2;
  }
  public void spielfeld(){
 
  }
 
   public void GameOver(){
    try{
        Thread.sleep(5000);
        SiegerFrame F3 = new SiegerFrame();
    }
    catch (InterruptedException e){
    }
 }
//================================================Klassen===============================================
        class SiegerFrame extends Frame{
 
        Label oben = new Label("Game Over");
        Label leer = new Label();
        Label sieger1 = new Label("Sieger ist:");
        Label sieger2 = new Label();
        Label durch1 = new Label("Gewonnen durch:");
        Label durch2 = new Label();
        Button main = new Button("Hauptmenu");
        Button newgame = new Button("neues Spiel");
        Button exit = new Button("Ende");
        Panel p5 = new Panel();
        Panel p6 = new Panel();
        Panel p7 = new Panel();
        JFrame applikation;
        Container container;
 
            public SiegerFrame(){
            applikation = new JFrame("Sieger");
            container = applikation.getContentPane();
            applikation.setLayout(new BorderLayout()); //setzt das Layout in den übergebenden Frame
            p5.setLayout(new GridLayout(1,1));
            p6.setLayout(new GridLayout(2,2));
            p7.setLayout(new GridLayout(3,1));
            applikation.add(p5, BorderLayout.NORTH);
            applikation.add(p6, BorderLayout.CENTER);
            applikation.add(p7, BorderLayout.SOUTH);
            p5.add(oben);
            p6.add(sieger1);
            p6.add(sieger2);
            p6.add(durch1);
            SiegerdurchMethode();
            p6.add(durch2);
            p7.add(main);
            p7.add(newgame);
            p7.add(exit);
            applikation.setUndecorated(true); //obere Leiste mit X ausschalten
            applikation.pack();
            //applikation.setContentPane(new BackgroundPanel());
            applikation.setVisible(true);
            applikation.setLocationRelativeTo(null); //setzt den Frame in die Mitte des Desktops
            sieger2.setText(""+sieger);
                main.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent f) {
                        AnzeigeMenuFrame F1 = new AnzeigeMenuFrame();
                            }
                    });
                newgame.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent f) {
                        clear();
                        applikation.setVisible(false);
                            }
                    });
                exit.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent f) {
                        System.exit(0);
                            }
                    });
            }
            public void SiegerdurchMethode(){
                if(siegerdurch==1){
                    durch2.setText("4 in einer Zeile");
                }
                if(siegerdurch==2){
                    durch2.setText("4 in einer Spalte");
                }
                if(siegerdurch==3){
                    durch2.setText("4 in der diagonale ObenLinks->UntenRechts");
                }
                if(siegerdurch==4){
                    durch2.setText("4 in der diagonale UntenLinks->ObenRechts");
                }
            }
     }
        public void clear(){
 
        for(int row=0; row<ROWS; row++){
            for(int col=0; col<COLS;col++)  {
                feldButton[row][col].setBackground(new Color(227,227,227));
                feldButton[row][col].setText("");
            }
        }
        for(int i=0; i<wurf.length; i++){
            wurf[i].setEnabled(false);
        }
        player1ein.setEnabled(true);
        player2ein.setEnabled(true);
        add1.setEnabled(true);
        add2.setEnabled(true);
        spalte1=5;
        spalte2=5;
        spalte3=5;
        spalte4=5;
        spalte5=5;
        spalte6=5;
        spalte7=5;
        player1ein.setText("Bitte Namen eingeben");
        player2ein.setText("Bitte Namen eingeben");
        palyer1bereit="false";
        palyer2bereit="false";
        siegerdurch=0;
        id=0;
        zeichen="X";
        status.setText("Neues Spiel geladen");
 
    }
}

Ja ich weiß das die wurfButtons mit einer for-schleife geloest werden könnten, mach ich auch hinterher aber ich brauch jetzt als erstes hilfe bei der gewinnFunktion des Iconsspielfelds. Irgendwie funktioniert der Vergleich über die Description nicht. Vielleicht hat jemand ne Idee.
 
Was heisst denn 'funktioniert nicht'. Poste doch mal bitten den Part wo du den Vergleich machst, ich find den naemlich nicht.
 
Ich glaube ich hab's...
Er möchte die Funktion, welche auf den Buttontext zugreift (IsGameOverButton) nun parallel für IsGameOverGrafik darstellen. Die bisherige Funktion sieht bei ihm so aus:

Java:
//Siegerfunktion des ButtonFelds
    public void IsGameOverButton(){
 
            System.out.println("IsGameOver");
            //Zeilenüberprüfung
            for(int zeile = 0; zeile < 3;zeile++){      //feld[6][7]
                for(int spalte = 0; spalte < 7; spalte++){
                    //System.out.println("Zeilenüberprüfung");
                    if(feldButton[zeile][spalte].getText()=="X" && feldButton[zeile+1][spalte].getText()=="X" &&
                        feldButton[zeile+2][spalte].getText()=="X" && feldButton[zeile+3][spalte].getText()=="X")
                        {
                            status.setText(name1+" hat 4 in einer Zeile");
                            siegerdurch=1;
                            playerXwin();
                        }
                    if(feldButton[zeile][spalte].getText()=="O" && feldButton[zeile+1][spalte].getText()=="O" &&
                        feldButton[zeile+2][spalte].getText()=="O" && feldButton[zeile+3][spalte].getText()=="O")
                        {
                            status.setText(name2+" hat 4 in einer Zeile");
                            siegerdurch=1;
                            playerOwin();
                        }
 
                }
            }
            //Spaltenüberprüfung
            for(int zeilesp = 0; zeilesp < 6;zeilesp++){        //feld[6][7]
                for(int spaltesp = 0; spaltesp < 4; spaltesp++){ //-den 4 spalten sonst geht er aus dem array
                //  System.out.println("spaltenüberprüfung");
                    if(feldButton[zeilesp][spaltesp].getText()=="X" && feldButton[zeilesp][spaltesp+1].getText()=="X" &&
                        feldButton[zeilesp][spaltesp+2].getText()=="X" && feldButton[zeilesp][spaltesp+3].getText()=="X")
                        {
                            status.setText(name1+" hat 4 in einer Spalte");
                            siegerdurch=2;
                            playerXwin();
                        }
                    if(feldButton[zeilesp][spaltesp].getText()=="O" && feldButton[zeilesp][spaltesp+1].getText()=="O" &&
                        feldButton[zeilesp][spaltesp+2].getText()=="O" && feldButton[zeilesp][spaltesp+3].getText()=="O")
                        {
                            status.setText(name2+" hat 4 in einer Spalte");
                            siegerdurch=2;
                            playerOwin();
                        }
                }
            }
            //Diagonalüberprüfung ObenLinks->UntenRechts
            for(int zeiledia1 = 0; zeiledia1 < 3;zeiledia1++){      //feld[6][7]
                for(int spaltedia1 = 0; spaltedia1 < 4; spaltedia1++){
                    //System.out.println("diagonalüberprüfung");
                    if(feldButton[zeiledia1][spaltedia1].getText()=="X" && feldButton[zeiledia1+1][spaltedia1+1].getText()=="X" &&
                        feldButton[zeiledia1+2][spaltedia1+2].getText()=="X" && feldButton[zeiledia1+3][spaltedia1+3].getText()=="X")
                        {
                            status.setText(name1+" hat 4 in der diagonale ObenLinks->UntenRechts");
                            siegerdurch=3;
                            playerXwin();
                        }
                    if(feldButton[zeiledia1][spaltedia1].getText()=="O" && feldButton[zeiledia1+1][spaltedia1+1].getText()=="O" &&
                        feldButton[zeiledia1+2][spaltedia1+2].getText()=="O" && feldButton[zeiledia1+3][spaltedia1+3].getText()=="O")
                        {
                            status.setText(name2+" hat 4 in der diagonale ObenLinks->UntenRechts");
                            siegerdurch=3;
                            playerOwin();
                        }
 
                    }
            }
            //Diagonalüberprüfung UntenLinks->ObenRechts
            for(int zeiledia2 = 0; zeiledia2 < 3;zeiledia2++){      //feld[6][7]
                for(int spaltedia2 = 0; spaltedia2 < 6; spaltedia2++){
                    //System.out.println("diagonalüberprüfung");
                    if(feldButton[zeiledia2+3][spaltedia2].getText()=="X" && feldButton[zeiledia2+2][spaltedia2+1].getText()=="X" &&
                        feldButton[zeiledia2+1][spaltedia2+2].getText()=="X" && feldButton[zeiledia2][spaltedia2+3].getText()=="X")
                        {
                            status.setText(name1+" hat 4 in der diagonale UntenLinks->ObenRechts");
                            siegerdurch=4;
                            playerXwin();
                        }
                    if(feldButton[zeiledia2+3][spaltedia2].getText()=="O" && feldButton[zeiledia2+2][spaltedia2+1].getText()=="O" &&
                        feldButton[zeiledia2+1][spaltedia2+2].getText()=="O" && feldButton[zeiledia2][spaltedia2+3].getText()=="O")
                        {
                            status.setText(name2+" hat 4 in der diagonale UntenLinks->ObenRechts");
                            siegerdurch=4;
                            playerOwin();
                        }
                    }
 
                }
    }

Ich selbst würde mir an deiner Stelle überlegen, ob das nicht auch noch einfacher geht, das schaut sehr unübersichtlich aus... Zumal die Methode jedes das komplette Feld auf einen 4er überprüft und das für beide Spieler... Wieso überprüfst du nicht vom aktuell gesetztem Feld aus? Dann hast du A) den aktuellen Spieler und B) du musst lediglich 7 Richtungen kontrollieren (S, SO, SW, O, W, NO, NW), wobei ich mir eine Reihenfolge der üblichsten "Gewinnrichtungen" festlegen würde und nach einem Treffer aufhören würde zu suchen... Relativ untypisch ist meiner Meinung nach 4 übereinander, daher würde ich das z.B. als letztes überprüfen.

Edit: Ich steige allgemein kaum durch, warum du wo und wann irgendwas tust, es ist vorteilhaft sich vorher einen genauen Plan aufzuskizzieren. Ich schätze MiMi geht es genauso wie mir...

Edit2: Ich habe es mir noch ein wenig angeschaut und mir sind ein paar grundsätzliche Dinge aufgefallen, womit man u.a. die Lesbarkeit erhöhen könnte...
1. spalte1, spalte2... sind sehr irritierend in Hinsicht auf die Funktion, ich würde hier ein int-Array entsprechend der Spaltenanzahl mit dem Namen anzahlrestfelder o.Ä. generieren
2. Die Bereit- und Namensfelder würde ich weglassen, da diese zusätzlichen Speicherverbauch haben, nutze stattdessen label.getText() und label.isEnabled()
3. Bisher enablest du das Feld und disablest es bei Bedarf wieder, setze doch besser den Status entsprechend einer Methode isNameValid o.Ä. mit einem boolean-Rückgabewert

PS.: Was mein Vorschlag von oben angeht bezüglich getDescription muss ich dazu sagen, dass ich immer durcheinander komme was Interfaces angeht, Icon ist ein Interface. Eventuell musst du den Rückgabewert auf ImageIcon casten, ich weiß nicht genau... *Schande auf mein Haupt* ;) Aber es müsste vom Grundgednaken her so gehen...
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück