eventlistener auf button-array

Status
Nicht offen für weitere Antworten.
M

Mathes

Gast
Hallo zusammen
ich wollte ein schiffeversenken spiel programmieren. für die spielfelder habe ich button-arrays eingefügt.
ich füge mal den quellcode ein, ich komme nur leider nicht weiter, ich wollte es jetzt so machen, dass bei tastendruck auf z.b. taste 50 dieses array den wert 4 annimmt, nur irgendwie funktioniert dies nicht wie es soll
import java.awt.*;
import java.applet.*;
import java.awt.event.*;

public class test extends Applet implements ActionListener
{
int verteilen =1,vierer =1,dreier=1,zweier=1;



int btnAnzahl = 100;
String [] btnLabels = { "", "", "", "",
"", "", "", "",
"", "","", "", "", "",
"", "", "", "",
"", "", "", "", "", "",
"", "", "", "",
"", "","", "", "", "",
"", "", "", "",
"", "", "", "", "", "",
"", "", "", "",
"", "","", "", "", "",
"", "", "", "",
"", "", "", "", "", "",
"", "", "", "",
"", "","", "", "", "",
"", "", "", "",
"", "", "", "", "", "",
"", "", "", "",
"", "","", "", "", "",
"", "", "", "",
"", "" };




public void init()
{




Panel Panelfeld1 = new Panel();
Panel Panelfeld2= new Panel();


Panelfeld1.setLayout( new GridLayout(10,10));
Panelfeld2.setLayout( new GridLayout(10,10) );

Button [] Buttonfeld1 = new Button[btnAnzahl];
Button [] Buttonfeld2 = new Button[btnAnzahl];

for (int i = 0; i < btnAnzahl; i++ )
{
Buttonfeld1 = new Button(btnLabels);
Panelfeld1.add( Buttonfeld1 );

Buttonfeld1.addActionListener(this);
Buttonfeld1.setActionCommand(btnLabels);

}

for (int i = 0; i < btnAnzahl; i++)
{
Buttonfeld2 = new Button(btnLabels);
Panelfeld2.add( Buttonfeld2 );

}
add(Panelfeld1);
add(Panelfeld2);
}







public void actionPerformed(ActionEvent e)
{



int koordinate= //der aktuelle button sprich zahl i, button 50 zb




public void (int koordinate)
{
System.out.println(koordinate); // Nur zum testen
}
}

wäre super, wenn da jemand helfen könnte
 

Wildcard

Top Contributor
Wo soll ich anfangen?
1. Code-Tags benutzen!!!
2. Klassen werden groß geschrieben!
3. Variablen werden klein geschrieben!
4. Warum machst du dieses unnötige btnLabels???


Code:
public class Test extends Applet
{ 
    int verteilen =1,vierer =1,dreier=1,zweier=1; 



    int btnAnzahl = 100;

    public void init() 
    { 

        Panel panelfeld1 = new Panel(); 
        Panel panelfeld2= new Panel(); 

        panelfeld1.setLayout( new GridLayout(10,10)); 
        panelfeld2.setLayout( new GridLayout(10,10) ); 

        Button [] buttonfeld1 = new Button[btnAnzahl]; 
        Button [] buttonfeld2 = new Button[btnAnzahl]; 

        for (int i = 0; i < btnAnzahl; i++ ) 
        { 
            buttonfeld1[i] = new Button(); 
            panelfeld1.add( buttonfeld1[i]); 

            buttonfeld1[i].addActionListener(new ActionListener()
            {
                public void actionPerformed(ActionEvent e)
                {
                    ((Button)e.getSource()).setLabel("x");
                }
            }); 
        }


        for (int i = 0; i < btnAnzahl; i++) 
        { 
            buttonfeld2[i] = new Button(); 
            panelfeld2.add( buttonfeld2[i] ); 

        } 
        add(panelfeld1); 
        add(panelfeld2); 
    } 
}
 
M

Mathes

Gast
danke für deine schnelle antwort.
deine version geht bei mir leider nicht.
ich wollte auch nicht das label ändern, das ist kein thema.
was ich gerne haben wollte ist, beim mausklick soll der inhalt des angeklicktes button-arrays geändert werden, damit ich dort die posiotion der treffer / schiffe / wasser merken kann.
 

Wildcard

Top Contributor
Mathes hat gesagt.:
deine version geht bei mir leider nicht.
Dann hast du die imports vergessen...

Mathes hat gesagt.:
ich wollte auch nicht das label ändern, das ist kein thema.
was ich gerne haben wollte ist, beim mausklick soll der inhalt des angeklicktes button-arrays geändert werden, damit ich dort die posiotion der treffer / schiffe / wasser merken kann.
Code:
class Test extends Applet 
{ 
    int verteilen =1,vierer =1,dreier=1,zweier=1; 



    int btnAnzahl = 100; 
    String [] btnLabels = new String[btnAnzahl];

    public void init() 
    { 

        Panel panelfeld1 = new Panel(); 
        Panel panelfeld2= new Panel(); 


        panelfeld1.setLayout( new GridLayout(10,10)); 
        panelfeld2.setLayout( new GridLayout(10,10) ); 

        Button [] buttonfeld1 = new Button[btnAnzahl]; 
        Button [] buttonfeld2 = new Button[btnAnzahl]; 

        for (int i = 0; i < btnAnzahl; i++ ) 
        { 
            buttonfeld1[i] = new Button(); 
            buttonfeld1[i].setActionCommand(String.valueOf(i));
            panelfeld1.add( buttonfeld1[i]); 

            buttonfeld1[i].addActionListener(new ActionListener() 
            { 
                public void actionPerformed(ActionEvent e) 
                { 
                    ((Button)e.getSource()).setLabel("x"); 
                    int j = Integer.parseInt(((Button)e.getSource()).getActionCommand());
                    btnLabels[j]="whatever you want";
                } 
            }); 
        } 


        for (int i = 0; i < btnAnzahl; i++) 
        { 
            buttonfeld2[i] = new Button(); 
            panelfeld2.add( buttonfeld2[i] ); 

        } 
        add(panelfeld1); 
        add(panelfeld2); 
    } 
} 


        for (int i = 0; i < btnAnzahl; i++) 
        { 
            buttonfeld2[i] = new Button(); 
            panelfeld2.add( buttonfeld2[i] ); 

        } 
        add(panelfeld1); 
        add(panelfeld2); 
    } 
}
 
M

Mathes

Gast
aha, danke, das sieht schon sehr schön aus
ja, hatte im eifer des gefechtes nicht gesehen, dass du die imports nicht hinzugefügt hattest, sry
dann ging die erste version von dir,
die zweite mag noch nicht so ganz
habe java.awt.*;
java.applet.*;
java.awt.event.*;
aber kommen fehlermeldungen,
class or interface expected
sry, aber schonmal danke für die mühe soweit ;)
 

Wildcard

Top Contributor
Also hier die ganze Version :roll:
Code:
import java.applet.Applet;
import java.awt.Button;
import java.awt.GridLayout;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;


/**
 * TODO short description for Test.
 * 


 * Long description for Test.
 * 
 * @author Wildcard
 * @version $Revision: $
 */
public class Test extends Applet 
{ 
  int verteilen =1,vierer =1,dreier=1,zweier=1; 



  int btnAnzahl = 100; 
  String [] btnLabels = new String[btnAnzahl];

  public void init() 
  { 

      Panel panelfeld1 = new Panel(); 
      Panel panelfeld2= new Panel(); 


      panelfeld1.setLayout( new GridLayout(10,10)); 
      panelfeld2.setLayout( new GridLayout(10,10) ); 

      Button [] buttonfeld1 = new Button[btnAnzahl]; 
      Button [] buttonfeld2 = new Button[btnAnzahl]; 

      for (int i = 0; i < btnAnzahl; i++ ) 
      { 
          buttonfeld1[i] = new Button(); 
          buttonfeld1[i].setActionCommand(String.valueOf(i));
          panelfeld1.add( buttonfeld1[i]); 

          buttonfeld1[i].addActionListener(new ActionListener() 
          { 
              public void actionPerformed(ActionEvent e) 
              { 
                  ((Button)e.getSource()).setLabel("x"); 
                  int j = Integer.parseInt(((Button)e.getSource()).getActionCommand());
                  btnLabels[j]="whatever you want";
              } 
          }); 
      } 


      for (int i = 0; i < btnAnzahl; i++) 
      { 
          buttonfeld2[i] = new Button(); 
          panelfeld2.add( buttonfeld2[i] ); 

      } 
      add(panelfeld1); 
      add(panelfeld2); 
  } 
}

Drauf achten das die Klasse genau so heißt wie die Datei (Groß/Kleinschreibung beachten), dann geht das auch!
 
M

Mathes

Gast
hrhr, danke, dass mit der groß kleinschreibung weiß ich schon,
ganz so blöd stell ich mich auch nicht an*g*
auch wenns nu den anschein erweckt ;)
das war irgendwas anderes, aber danke für deine ausdauer, nu geht es
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Java3D Applet flackert wenn ein Button(HTML) gedrückt wird Tools - Maven, Gradle, Ant & mehr 11
H Applet Frame mit Button öffnen Tools - Maven, Gradle, Ant & mehr 2
N [Applet] Button wir nach 5 secs Unsichtbar Tools - Maven, Gradle, Ant & mehr 2
J Applet Taschenrechner mit 3 TextAreas und 1 Button Tools - Maven, Gradle, Ant & mehr 9
M NORTH-Button wird im Firefox nicht dargestellt, im IE schon Tools - Maven, Gradle, Ant & mehr 4
thE_29 Vom Applet aus einem HTML Button Focus geben Tools - Maven, Gradle, Ant & mehr 4
S Button initialisieren Tools - Maven, Gradle, Ant & mehr 3
S Aus Applet per Button-Klick anderes Applet in Browser laden Tools - Maven, Gradle, Ant & mehr 7
F Applet mit HTML-Button starten und im/als JFrame anzeigen Tools - Maven, Gradle, Ant & mehr 5
P URL mit Button offnen ? Tools - Maven, Gradle, Ant & mehr 2
S showDocument() für eine Rollover-Button-Klasse Tools - Maven, Gradle, Ant & mehr 2
Paule Aufruf einer neuen Klasse durch Button-Klick Tools - Maven, Gradle, Ant & mehr 11
A (selbstdefinierten) dialog per button aufrufen Tools - Maven, Gradle, Ant & mehr 3
H Applet Array[Variable] Tools - Maven, Gradle, Ant & mehr 6
R Array Werte einer JComboBox hinterlegen Tools - Maven, Gradle, Ant & mehr 2
J Bild in Array einlesen Tools - Maven, Gradle, Ant & mehr 13

Ähnliche Java Themen


Oben