Array auslesen in GUI

Exflame

Mitglied
Hallo Leute,

auch ich programmiere gerade ein "Fünf Gewinnt" Spiel. Soweit steht meine GUI und funktioniert auch. Aber ich kann meine Arrays nicht auslesen und weis nicht woran es liegt. Und solange ich das nicht hinbekomme, brauch ich mit meiner Logik nicht anfangen......

Hier mein Programm:

1. GUI

Java:
import javax.swing.*;
import java.awt.*;

public class FuenfGewinntGUI extends JFrame
{
    private JButton btnStart;                                          //Start-Button
    private JButton btnEnde;                                           //Ende-Button
    private JPanel grid;                                            //Spielfeld
    private JLabel lblSpieler;                                        //welcher Spieler ist dran
    private JButton [][] btnSpielfeld = new JButton [10][10];        //Buttons für Spielfeld
    private int i=0;                                                //Zähler 1 für Array
    private int j=0;                                                //Zähler 2 für Array
    
    private MyListenerFuenf myLf = new MyListenerFuenf(this);    
    private Container c = this.getContentPane();
    
    public FuenfGewinntGUI()
    {
        super("5-Gewinnt");                                          //Titel auf Leiste
        this.setLayout(null);                                       //kein Layoutmanager
        this.setBounds(200,50,700,650);
        c=this.getContentPane();
        this.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); 
        
        btnStart = new JButton("NEU");                              //Startbutton
        btnStart.setBounds(570,30,100,40);
        btnStart.setFont(new Font("Arial", Font.PLAIN, 20));
        btnStart.addActionListener(myLf);                            //ActionListener
        btnStart.setBackground(Color.GREEN);                    
        this.c.add(btnStart);
        
        btnEnde = new JButton("Ende");                                //Endebutton
        btnEnde.setBounds(570,100,100,40);
        btnEnde.setFont(new Font("Arial", Font.PLAIN, 20));
        btnEnde.addActionListener(myLf);                               //ActionListener
        btnEnde.setBackground(Color.GREEN);
        this.c.add(btnEnde);
        
        grid = new JPanel();
        grid.setBounds(30,30,500,500);
        grid.setLayout(new GridLayout(10,10));
        
        for(i=0;i<btnSpielfeld.length;i++)                            //Doppelschleife für Array
        {
             for(j=0;j<btnSpielfeld[i].length;j++)
            {
                btnSpielfeld [i][j] = new JButton();                //Array Buttons
                grid.add(btnSpielfeld[i][j]);
                btnSpielfeld[i][j].addActionListener(myLf);
               }
        }
        this.c.add(grid);
        
        lblSpieler = new JLabel();                                    //Status
        lblSpieler.setBounds(170,550,300,60);                        //Größe und Position
        lblSpieler.setFont(new Font("Arial", Font.PLAIN, 20));
        this.c.add(lblSpieler);
        
        
        setResizable(false);
        this.setVisible(true);
    }
    
    public JLabel getLblSpieler()
    {
        return this.lblSpieler;
    }
    
    public JButton getBtnStart()
    {
      return this.btnStart;
    }
    public JButton getBtnEnde()
    {
      return this.btnEnde;
    }
    public void setBtnSpielfeld(int i, int j, String a)
    {
        this.btnSpielfeld[i][j].setFont(new Font("Arial", Font.PLAIN, 20));
        this.btnSpielfeld[i][j].setText(a);
    }
    public JButton getBtnSpielfeld(int i, int j)
    {
        return this.btnSpielfeld[i][j];
       }
    public JButton[][] getArray()
    {
        return btnSpielfeld;
    }

    public void setLblSpieler(String b) 
    {
        this.lblSpieler.setText(b);
        
    }

 }

2. Listener

Java:
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;

public class MyListenerFuenf implements ActionListener, FocusListener
{
  private FuenfGewinntGUI fgg;
  private int i = 0;
  private int j = 0;
  private int y = 0;                                    //welcher SPieler ist am Zug?
  private int z = 0;                                    //tmp-Zähler
  private int ss = 0;                                    //Spieler s --> s-Zähler
  private int ws = 0;                                    //Spieler w --> s-Zähler
  
    public MyListenerFuenf(FuenfGewinntGUI myLf)
    {
      fgg = myLf;
    }
  
    public void actionPerformed(ActionEvent e)          //actionPerformed / actionEvent Abstraktemethode von Actionlistener
    {
      Object ob = e.getSource();                        //e(!) 
      
      if (ob.equals(fgg.getBtnStart()))                    //Aktion bei START-Button
      {
          for(i = 0; i<fgg.getArray().length; i++)
          {
              for(j = 0; j<fgg.getArray().length; j++)
              {
                fgg.setBtnSpielfeld(i, j, " ");                                                    
              }
          }
      }
      if(ob.equals(fgg.getBtnEnde()))                    //Aktion bei ENDE-Button
      {
        System.exit(0);
      }
      
          for(i = 0; i<fgg.getArray().length; i++)        //Schleife für Spieler (w oder s)
          {
              for(j = 0; j<fgg.getArray().length; j++)
              {     
                  if (ob.equals(fgg.getBtnSpielfeld(i,j)))                
                  {
                      y=z%2;
                      
                       if(y==0)
                      {
                        fgg.setBtnSpielfeld(i, j, "w");  
                       }
                      else
                      {
                          fgg.setBtnSpielfeld(i, j, "s");
                      }
                       z++;
                  }
               }  
           }          
     }     
//-------------------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------------------          
   public void focusGained(FocusEvent fe)
    {
       

           
    }
    public void focusLost(FocusEvent fe)
    {
        Object o = fe.getSource();                        //fe(!)

    }
}

Ich hab schon mehrere Versuche gestartet, hat aber nie etwas gebracht.

Danke schonmal für Eure Hilfe!!

VG
Exflame
 

w0ddes

Bekanntes Mitglied
Du könntest deinen "Spielbuttons" ActionCommands zuweisen und dann im Listener auf diese Commands überprüfen!

also

Java:
        for(i=0;i<btnSpielfeld.length;i++)                            //Doppelschleife für Array
        {
             for(j=0;j<btnSpielfeld[i].length;j++)
            {
                btnSpielfeld [i][j] = new JButton();                //Array Buttons
                grid.add(btnSpielfeld[i][j]);
                btnSpielfeld[i][j].addActionListener(myLf);
                btnSpielfeld[i][j].setActionCommand(i.toString + j.toString);
               }

und dann im Listener irgendwie so überprüfen: (is verdammt lang aber mir fällt grad nichts besseres ein)

Java:
if(ob.getActionCommand().equals("00"){
    do;
}
else if(ob.getActionCommand().equals("01"){
    do;
}
//...

Edit: Wobei ich grade daran zweifel, dass ich dein Problem richtig verstanden habe ...
 
Zuletzt bearbeitet:

Exflame

Mitglied
Also: Wir haben in der Schule (Fortbildung zum IT-Techniker) die Aufgabe erhalten, ein "Fünf Gewinnt" Spiel mit GUI zu schreiben. Spielfläche 10x10 Kästchen. Es soll zwei Spieler geben mit "S" für schwarz und "W" für weiß. Die GUI hab ich soweit fertig. Die Spieler können die Felder markieren mit S oder W. Mit Button "Start" das Spielfeld wieder auf 0 Setzen und "Ende" für Spiel beenden.
Nur kann ich S oder W aus den Arrays nicht auslesen. Erst wenn ich das kann, kann ich die Logik für fünf in einer Reihe waagrecht / Senkrecht oder Diagonal schreiben.

Danke für Deine schnelle Antwort.....
 

Sonecc

Gesperrter Benutzer
warum kannst du das nicht auslesen?
Du kannst doch ganz normal den Text aus dem Button auslesen, also wo liegt das Problem?
 

w0ddes

Bekanntes Mitglied
Okay, Problem verstanden .. Dann hilft das oben nicht wirklich ^^

Du kannst doch einfach über (hab gerade deine genauen Bezeichnungen nicht im Kopf)
Code:
buttonArray[i][j].getText()
auf die Beschriftung zugreifen
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
T array auslesen Java Basics - Anfänger-Themen 2
H Array rückwärts auslesen funktioniert nicht Java Basics - Anfänger-Themen 3
AleXusher Mehrdimensionales Array aus txt.file auslesen Java Basics - Anfänger-Themen 4
B Datei auslesen und 2D-Array anlegen Java Basics - Anfänger-Themen 1
Voreck Array aus txt datei auslesen Java Basics - Anfänger-Themen 2
J Integer-Werte in Array ein- bzw. auslesen Java Basics - Anfänger-Themen 7
M Array mit Objekten lässt sich nicht auslesen Java Basics - Anfänger-Themen 10
B String auslesen und Stellen im Array speichern Java Basics - Anfänger-Themen 1
S Rückgabe-Array lässt sich nicht auslesen, LocalDate mit String Java Basics - Anfänger-Themen 3
M Erste Schritte float-Array auslesen Java Basics - Anfänger-Themen 4
O Auslesen von .csv Datein in ein Klassen Array Java Basics - Anfänger-Themen 6
J Methoden Einzelnen Wert aus Objekt aus einem Array auslesen und danach sortieren Java Basics - Anfänger-Themen 8
P 2D Array auslesen gibt nur letzten Wert aus Java Basics - Anfänger-Themen 11
E array; daten aus txt auslesen Java Basics - Anfänger-Themen 5
D Array auslesen und und Werte in ein anderes array anlegen Java Basics - Anfänger-Themen 5
S array auslesen Java Basics - Anfänger-Themen 6
J Variablen Array aus anderer Klasse auslesen-Wie verhindert man eine NullPointerException? Java Basics - Anfänger-Themen 4
Z Datei auslesen und in 2dim Array packen. Java Basics - Anfänger-Themen 27
S Werte aus Array auslesen über Variableninhalt Java Basics - Anfänger-Themen 2
O Erste Schritte Array auslesen, ... Java Basics - Anfänger-Themen 6
E Erste Schritte Verzeichnis auslesen, Dateinamen in Array speichern :-( Java Basics - Anfänger-Themen 7
K String auslesen aus array Java Basics - Anfänger-Themen 3
C Array rückwärts auslesen Java Basics - Anfänger-Themen 4
M Datei auslesen und Array schreiben?! Java Basics - Anfänger-Themen 8
S Datentypen Array in Textdatei speichern und auslesen Java Basics - Anfänger-Themen 16
K Inhalt eines Elements aus dem Objekt Array auslesen Java Basics - Anfänger-Themen 9
F OOP Objekt Array auslesen Java Basics - Anfänger-Themen 9
J 2-dim Array auslesen und in Datei schreiben Java Basics - Anfänger-Themen 10
D Array Elemente auslesen Java Basics - Anfänger-Themen 14
G Bestimmte Position im array auslesen Java Basics - Anfänger-Themen 8
P Array index per char suche auslesen Java Basics - Anfänger-Themen 3
A bilddateinamen aus array auslesen und bild darstellen? Java Basics - Anfänger-Themen 2
B Java Array List größe auslesen zur Suchfunktion Java Basics - Anfänger-Themen 5
N String/char-array aus datei auslesen Java Basics - Anfänger-Themen 2
W Array auslesen? Java Basics - Anfänger-Themen 11
B String-Array in Datei speichern und wieder auslesen Java Basics - Anfänger-Themen 3
M Array - eine Variable auslesen Java Basics - Anfänger-Themen 4
G CSV auslesen und Zeilen in Array speichern Java Basics - Anfänger-Themen 13
G Array werte auslesen Java Basics - Anfänger-Themen 6
J array in for-Schleife auslesen? Java Basics - Anfänger-Themen 6
N Array aus JCheckBox? 1000 if's UPDATE: Spaltennamen auslesen Java Basics - Anfänger-Themen 12
S byte-array bitweise auslesen Java Basics - Anfänger-Themen 14
G Daten aus einem Array auslesen Java Basics - Anfänger-Themen 2
S Aus Array auslesen (HTML u.JSP). Wie! Java Basics - Anfänger-Themen 2
P String aus Zahlen auslesen und in einem Array speichern Java Basics - Anfänger-Themen 3
B Array auslesen das als Objekt geliefert wurde Java Basics - Anfänger-Themen 2
G Txt auslesen... Inhalt in ein Array speichern Java Basics - Anfänger-Themen 8
A Zeichenkette teilen mit Substring oder Char Array Java Basics - Anfänger-Themen 14
A 6. Element aus einem Array zurückgeben Java Basics - Anfänger-Themen 1
A Was bedeutet bei einem Array "int a [MAX][MAX];", Java Basics - Anfänger-Themen 7
T Array verkleinern Java Basics - Anfänger-Themen 2
J Array aus Numberfield Eingaben Java Basics - Anfänger-Themen 7
D Array List mit Objekten sortieren Java Basics - Anfänger-Themen 2
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
Ü Zweidimensionales Array in der ersten Zeile deklarieren Java Basics - Anfänger-Themen 13
Thomas Uppe 2D Array Reihenfolge vermischen Java Basics - Anfänger-Themen 4
Nitrogames Variablen Variable aus JOptionPane Abfrage in Array einfügen Java Basics - Anfänger-Themen 4
moini Auf Array aus Superklasse zugreifen? Java Basics - Anfänger-Themen 2
J ArrayList in 2D-Array konvertieren. Java Basics - Anfänger-Themen 48
M NullPointerException: Cannot read the array length because "this.Kinder" is null Java Basics - Anfänger-Themen 1
P Wieso kann ich als Index für einen Array einen Char angeben? Java Basics - Anfänger-Themen 3
Finn_lol Fehlermeldung bei Schleife mit Array Java Basics - Anfänger-Themen 4
Proxy Chars vor array übergabe toLowerUpcase Java Basics - Anfänger-Themen 14
iAmFaiinez Primzahlen Tester ohne Array Java Basics - Anfänger-Themen 4
S array 2 dimensional treppe Java Basics - Anfänger-Themen 3
S Array 2x2 Blöcke mit 0 und 1 Java Basics - Anfänger-Themen 10
C Array von Klassen Java Basics - Anfänger-Themen 2
julian0507 2Dim-Array Spaltensummen Java Basics - Anfänger-Themen 1
XWing Doppelte Zahlen im Array Java Basics - Anfänger-Themen 8
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
W Items löschen aus String Array vom Custom Base Adapter Java Basics - Anfänger-Themen 2
Proxy Stack erweitern mit neuem Array falls der alte voll ist!? Java Basics - Anfänger-Themen 5
E Array, nächste Zahl zur 5 ausgeben, wie? Java Basics - Anfänger-Themen 42
J Array.list vergleichen Java Basics - Anfänger-Themen 1
W Java-Code mit Array Java Basics - Anfänger-Themen 14
D Reflections & Generisches Array Java Basics - Anfänger-Themen 4
T Array Java Basics - Anfänger-Themen 2
T Array Java Basics - Anfänger-Themen 15
T Wörteranzahl im Array zählen Java Basics - Anfänger-Themen 9
Ostkreuz Zweidimensionaler Array Index Java Basics - Anfänger-Themen 2
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
R Images aus einem Array ausgeben Java Basics - Anfänger-Themen 3
R 2d Array individuell machen Java Basics - Anfänger-Themen 4
D 2D Char Array into String Java Basics - Anfänger-Themen 2
J Array Median bestimmen Java Basics - Anfänger-Themen 6
S Array Maximum bestimmen mit for und foreach Java Basics - Anfänger-Themen 7
S Prüfen ob ein zweidimensionales Array rechteckig ist Java Basics - Anfänger-Themen 4
N Array Java Basics - Anfänger-Themen 1
J Array Mittleren Wert bestimmen Java Basics - Anfänger-Themen 2
D OOP Array einem Objekt zuweisen Java Basics - Anfänger-Themen 2
O Zahlen aus einem char-array per char + Zeichen addieren Java Basics - Anfänger-Themen 2
S leeres Array statt Null Pointer Exception ausgeben Java Basics - Anfänger-Themen 20
S Inhalte aus Array vergleichen und Max ausgeben Java Basics - Anfänger-Themen 3
M 2d array ohne längen anlegen Java Basics - Anfänger-Themen 4
S Bestimmte werte aus einem Array löschen Java Basics - Anfänger-Themen 2
S Ausgeben wie oft ein Wert in einem Array vorkommt Java Basics - Anfänger-Themen 7
E Reihenfolge der Werte umdrehen (mittels statischem int-Array Java Basics - Anfänger-Themen 3
O 2 Dimensionales Array Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben