GridLayout - elemente mit Maus abfragen

  • Themenstarter Themenstarter Barb
  • Beginndatum Beginndatum
B

Barb

Gast
Hallo Forum

Ich muss ein Spiel programmieren, mit einem n * m Spielfeld. Das habe ich mit GridLayout gelöst. In jedes Feld kommt ein Foto.
Das habe ich hinbekommen. Nun soll was passieren wenn ich auf ein Feld klicke.

Wie bekomme ich nun wenn ich zB auf Feld (1,2) klick
2. Spalte
3. Zeile
diese Indizes zurück?

Ich danke im voraus

Barbara
 
Kannst ja in jedem Foto die Position festhalten, wo es reingekommen ist.
Beschreibe lieber den Sinn ein wenig näher, vllt fallen da andere Lösungen ein.
 
Wenn dir nicht die Zeilen und Spalten wichtig sind, sondern die Fotos die angeklickt wurden, dann kannst du an jeden Foto ( da es z.B. von JPanel erbt ) einen Mausclick listener anbringen. damit kannst du alle klicks zentral, an einer stelle bearbeiten in dem du die source der Mausclicks abfragst.

Poste mal pls wie du die Fotos in einem stringgrid untergebracht hast. Oder lies pls meinen post dazu durch - was bei mir fehlt. Versuche es schon seit 3 Tagen.
http://www.java-forum.org/awt-swing-swt/103085-alle-bilder-angezeigt.html
 
Wie werden denn die Bilder angezeigt? Mit einem ImageIcon auf eine JLabel oder so? Da sollte man einen MouseListener dranhängen können. GANZ grob und sinngemäß würde da vielleicht sowas gehen wie
Code:
for (int y=0; y<h; y++)
{
    for (int x=0; x<w; x++)
    {
        JLabel label = new JLabel(....); // Label mit dem ImageIcon
        panelWithGridLayout.add(label);
        final int finalX = x;
        final int finalY = y;
        label.addMouseListener(new MouseAdapter()
        {
            public void mouseClicked(MouseEvent e)
            {
                System.out.println("KLick auf "+finalX+" "+finalY);
            }
        });
    }
}

Es gäbe aber auch elegantere, in gewisser Hinsicht auch "einfachere" oder "flexiblere" Möglichkeiten, wenn du die Bilder z.B. selbst auf ein JPanel zeichnen würdest...
 

Neue Themen


Zurück
Oben