# Minesweeper: Koordinaten auslesen



## Armondor (24. Jun 2009)

Hallo,

wir sollen als Projhekt ein einfaches Spiel programmieren, das auf Server und Client basiert.
Es besteht nur ein Problem: Wir wissen nicht wie man die Koordinaten ausliest, damit verschiedene Aktionen (wie z.B.: aufdeken von leeren Feldern, ...)
Hier mal der Quelltext zum anschauen:

```
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.util.*;

/**
  *
  * Beschreibung
  *
  * @version 1.0 vom %DATUM%
  * @author %AUTOR%
  */

public class MineGUI extends JFrame {
  // Anfang Attribute
  private ArrayList<JButton> knoepfe =  new ArrayList<JButton>();
  Container cp;
  GridLayout g;
  //private JButton jButton2 = new JButton();
  // Ende Attribute

  public MineGUI(String title) {
    // Frame-Initialisierung
    super(title);
    setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    int frameWidth = 600;
    int frameHeight = 600;
    setSize(frameWidth, frameHeight);
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int x = (d.width - getSize().width) / 2;
    int y = (d.height - getSize().height) / 2;
    setLocation(x, y);
    cp = getContentPane();

    g = new GridLayout(15,15);
    cp.setLayout(g);
    // Anfang Komponenten
     for (int i=0; i<225; i++){
       knoepfe.add(new JButton());
       knoepfe.get(i).setText("");
       cp.add(knoepfe.get(i));
     }

    // Ende Komponenten

    setResizable(false);
    setVisible(true);
  }

  // Anfang Methoden
  public void knoepfe_ActionPerformed(ActionEvent evt) {
   JButton flipped = (JButton)evt.getSource();
   //Hier sollen die Koordinaten ausgelesen werden

  }



  // Ende Methoden

  public static void main(String[] args) {
    new MineGUI("MineGUI");
  }
}
```

Ich hoffe ihr könnt mir hier helfen.

MfG
Armondor


----------



## Marco13 (24. Jun 2009)

Hilft das http://www.java-forum.org/java-faq-beitraege/49255-componenten-und-listener.html ?


----------



## chr|s0r (26. Jun 2009)

Du kannst doch relativ einfach anhand des Indexes des gedrückten Buttons welcher sich bei dir in einem Arraylist befindet herausfinden wo genau sich dieser Button auf dem Spielfeld befindet.

Lass innerhalb der ActionPerformed Methode eine Schleife durch dein ArrayList laufen , innerhalb dieser prüfst du jedes Button Objekt ob es geklickt wurde. Wurde der Button gedrückt hast du denn Index des gedrückten Buttons. Daraus kannst du dir die Koordinaten errechnen und diese über das Netzwerk etc. verschicken.


----------



## Mostly_Harmless (26. Jun 2009)

Warum hast du denn die Felder in eine ArrayList gepackt und nicht in ein 2D-Array?
Ein Array würde die Sache stark vereinfachen, dann könntest du denn Buttons nämlich direkt beim Einfügen schon als ActionCommand die Koordinaten geben und beim Klick auslesen.


----------

