ActionListener Problem

Flinki

Grünschnabel
habe ein Objekt JSchueler die immer einen Schueler enthält(+ Methode Schueler() welche ein JPanel welches die Eigenschaften als JLabels und den Namen als JToggelbutton zurückschickt)
In der JLayout wird ein JSchueler[][] verwaltet für den Sitzplan.
Jetzt besteht das Problem darin, dass der Spieler nach jedem Semester 3mal Schueler versetzen darf(2 tauschen immer miteinander)...
Aber wie kann ich die ActionListener auf die JTogglebuttons legen?
 

Anhänge

  • JSchueler.txt
    4,4 KB · Aufrufe: 28
  • JLayout.txt
    23 KB · Aufrufe: 118
  • Anzeige.gif
    Anzeige.gif
    1,2 KB · Aufrufe: 24
  • Lehrer.gif
    Lehrer.gif
    3,2 KB · Aufrufe: 17
  • Life Game2.jpg
    Life Game2.jpg
    1,6 KB · Aufrufe: 15
Indem du den Togglebuttons ActionListener verpasst?
Java:
button.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
         // do something
         // or don't do something
         // or whatever you want
    }
})
 
so in der eigenen klasse schon...
aber der listener soll ja auf einem JTogglebutton des Objekts JSchueler liegen
 
Dein Schüler wird seine Buttons doch wohl auch irgendwo zur Ansicht bringen - sonst wären da auch Actionlistener überflüssig.

Und die Buttons, die angezeigt werden, kannst du ohne Probleme mit einem Actionlistener versehen.
 
jetzt hab ich zwar jeden JSchueler einen ActionListener zugewiesen.
Aber wie kann ich diesen im JLayout abfangen?

JSchueler
Code:
/**
 *@author Widy,Schlachter
 *@version 1.0a
 */
import java.util.Random;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

public class JSchueler implements ActionListener{
  double noten;
  double verhalten;
  double schummeln;
  double mitarbeit;
  double fleiss;
  double intelligenz;
  //final String[] nameWeiblich = {"Anna","Berta","Helga","Stefanie","Marianne","Hildegard","Antonia"};
  //final String[] nameMaennlich = {"Hermann","Anton","Willi","Hannes","Peppi","Jürgen","Wolfgang","Andreas"};

  int geschlecht;
  boolean rep;
  String name;
  JToggleButton nameL;


/**
 * Diese Methode weist den Eigenschaften "Noten", "Verhalten", "Schummeln", "Mitarbeit", "Fleiss", "Intelligenz" & "Geschlecht"
 * einen Wert zu mit Hilfe der Methode erzeugeZahl().
 */
  public void erzeugeEigenschaften()
  { noten = erzeugeZahl();
    verhalten = erzeugeZahl();
    schummeln = erzeugeZahl();
    mitarbeit = erzeugeZahl();
    fleiss = erzeugeZahl();
    intelligenz = erzeugeZahl();
    geschlecht = erzeugeGeschlecht();
    }

/**
 * Diese Methode erzeugt eine zufällige Zahl von 1-4. Da wir nicht annehmen, dass jemand mit einem 5er die 1. HTL Klasse besucht.
 */
    public int erzeugeZahl()
    { Random r = new Random();
      int b = r.nextInt(4)+1;  //http://leepoint.net/notes-java/algorithms/random/random-api.html
      return b;
    }

/**
 * Diese Methode erzeugt eine zufällige Zahl von 1-100. 1-100 daher, weil in der HTL durschnittlich 18% Mädchenanteil
 * pro 1. Klasse vorhanden ist und sich dieser hiermit leichter ausrechnet lässt
 */
    public int erzeugeGeschlecht()
    { Random r = new Random();
     int g = r.nextInt(100)+1;
     if(g>18)
       return 1; //männlich
     else
       return 0; //weiblich
    }


    public void setNoten(double noten){ this.noten = noten; }
    public void setVerhalten(double verhalten){ this.verhalten = verhalten; }
    public void setSchummeln(double schummeln){ this.schummeln = schummeln; }
    public void setMitarbeit(double mitarbeit){ this.mitarbeit = mitarbeit; }
    public void setFleiss(double fleiss){ this.fleiss = fleiss; }
    public void setIntelligenz(double intelligenz){ this.intelligenz = intelligenz; }
    public void setName(String name){ this.name = name;}

    public double getNoten(){ return noten; }
    public double getVerhalten(){ return verhalten; }
    public double getSchummeln(){ return schummeln; }
    public double getMitarbeit(){ return mitarbeit; }
    public double getFleiss(){ return fleiss; }
    public double getIntelligenz(){ return intelligenz; }
    public int getGeschlecht(){ return geschlecht; }
    public String getName(){ return name;}
   // public JToggleButton getButton(){return nameL;}

/**
 * In dieser Methode wird ein JPanel erstellt welches alle Eigenschaften des Schülers in Form von JLabels enthält
 * @return JPanel
 */
    public JPanel Schueler(){
      JPanel schuelerL = new JPanel();
      schuelerL.setLayout(new GridLayout(0,1));

      nameL = new JToggleButton(name);

      JLabel notenL = new JLabel("Noten: "+noten);
      JLabel verhaltenL = new JLabel("Verhalten: "+verhalten);
      JLabel schummelnL = new JLabel("Schummeln:"+schummeln);
      JLabel mitarbeitL = new JLabel("Mitarbeit: "+mitarbeit);
      JLabel fleissL = new JLabel("Fleiss: "+fleiss);
      JLabel intelligenzL = new JLabel("Intelligenz: "+intelligenz);
      JLabel geschlechtL;

    if(geschlecht ==1)
      geschlechtL = new JLabel("männlich");
    else
      geschlechtL = new JLabel("weiblich");

      nameL.addActionListener(this);

//    int a;
//    Random r = new Random();
//
//      if(geschlecht == 1){
//        geschlechtL = new JLabel("männlich");
//        a = r.nextInt(8);
//        nameL = new JToggleButton(nameMaennlich[a]);
//      }
//      else{
//        geschlechtL = new JLabel("weiblich");
//        a = r.nextInt(7);
//        nameL = new JToggleButton(nameWeiblich[a]);
//      }

    //if(noten<1.5)
    //  notenL.setBackground(Color.GREEN);
  //  if(noten>4.1)
  //    notenL.setBackground(Color.RED);
  //  else
  //    notenL.setBackground(Color.GRAY);

      schuelerL.add(nameL);
      schuelerL.add(notenL);
      schuelerL.add(verhaltenL);
      schuelerL.add(schummelnL);
      schuelerL.add(mitarbeitL);
      schuelerL.add(fleissL);
      schuelerL.add(intelligenzL);
      schuelerL.add(geschlechtL);

      return schuelerL;
    }

    public void actionPerformed(ActionEvent e){}

}

JLayout
Code:
/**
 *@author Widy,Schlachter
 *@version 1.0a
 */
import javax.swing.*;
import java.applet.*;
import java.awt.*;
import javax.swing.event.*;
import java.awt.event.*;
import javax.swing.JEditorPane;
import java.util.Random;

public class JLayout extends JApplet implements ActionListener{

  int semester=0;
  private JButton        jahr     = new JButton("Schritt");
  private JButton        einzel   = new JButton("Semester");
  private JButton  alles    = new JButton("Alles");
  //private ButtonGroup darstellung = new ButtonGroup();
  //private ButtonGroup anzeige   = new ButtonGroup();
  //private ButtonGroup sitzplan    = new ButtonGroup();
  private JPanel norden1  = new JPanel();
  private JPanel norden   = new JPanel();
  private JPanel sueden   = new JPanel();
  private JPanel westen   = new JPanel();
  private JPanel osten    = new JPanel();
  private JPanel mitte    = new JPanel();
  JToggleButton button1;
  int reihe=0;
  int sitzePR=0;
  JSchueler schueler[][];
  String[] nameWeiblich = {"Anna","Berta","Helga","Stefanie","Marianne","Hildegard","Antonia","Monika","Sarah","Lena","Maggie",
                           "Anna","Berta","Helga","Stefanie","Marianne","Hildegard","Antonia","Monika","Sarah","Lena","Maggie"};
  String[] nameMaennlich = {"Hermann","Anton","Willi","Hannes","Peppi","Jürgen","Wolfgang","Andreas","Fabian","Felix","Franz",
                            "Georg","Mario","Peter","Simon","Benjamin","Johannes","Kevin","Karl","Gerald","Jürgen","Wolfgang",
                            "Hermann","Anton","Willi","Hannes","Peppi","Jürgen","Wolfgang","Andreas","Fabian","Felix","Franz",
                            "Georg","Mario","Peter","Simon","Benjamin","Johannes","Kevin","Karl","Gerald","Jürgen","Wolfgang"};
  Container c=getContentPane();
  private JLabel reiheL;
  private JLabel anzahlJeReiheL;
  private JTextField reiheT;
  private JTextField anzahlJeReiheT;

  private JPanel panel1;

  public void init(){
      c.setLayout(new BorderLayout());
      setSize(1200,600);
      //setExtendedState(JFrame.MAXIMIZED_BOTH);

      button1 = new JToggleButton("OK");

      reiheL = new JLabel("Reihenanzahl eingeben: ");
      anzahlJeReiheL = new JLabel("Anzahl der Schüler pro Reihe: ");

      reiheT = new JTextField();
      anzahlJeReiheT = new JTextField();

      panel1 = new JPanel();

      panel1.setLayout(new GridLayout(10,10));

      panel1.add(reiheL);
      panel1.add(anzahlJeReiheL);
      panel1.add(reiheT);
      panel1.add(anzahlJeReiheT);

      c.add(panel1,BorderLayout.CENTER);
      c.add(button1,BorderLayout.EAST);

      button1.addActionListener(this);
      // listens to Buttons
      jahr.addActionListener(this);
      alles.addActionListener(this);
      einzel.addActionListener(this);
  }


  public void erstelleKlasse(){
    schueler = new JSchueler[reihe][sitzePR];
    for(int i=0; i<reihe; i++)
      for(int j=0; j<sitzePR; j++)
        schueler[i][j] = new JSchueler();

    for(int i=0; i<reihe; i++)
      for(int j=0; j<sitzePR; j++){
        do{
          schueler[i][j].erzeugeEigenschaften();
          Random r = new Random();
          int a;
          if(schueler[i][j].getGeschlecht() == 1){
            a = r.nextInt(nameMaennlich.length);
            if(nameMaennlich[a] == null){}
            schueler[i][j].setName(nameMaennlich[a]);
            nameMaennlich[a] = null;
          }
          else{
            a = r.nextInt(nameWeiblich.length);
            if(nameWeiblich[a] == null){}
            schueler[i][j].setName(nameWeiblich[a]);
            nameWeiblich[a] = null;
          }
        }while(schueler[i][j].getName() == null);
      }
  }

  public void start(){}

  public void paint(){}




  public void berechneSchritt(){

    double a;
//  do{ i++;
    System.out.println("BLA");

    for(int i=0; i<reihe; i++)
      for(int j=0; j<sitzePR; j++){
        if(schueler[i][j]==null){}
        else{
          double zaehler=0;
          zaehler += schueler[i][j].getVerhalten()+schueler[i][j].getSchummeln()+schueler[i][j].getMitarbeit()+
                     schueler[i][j].getFleiss()+schueler[i][j].getIntelligenz();
          zaehler = zaehler/10;
          System.out.println(zaehler);
          if(zaehler>1.5)
            schueler[i][j].setNoten(schueler[i][j].getNoten()+2*zaehler);
          else
            schueler[i][j].setNoten(schueler[i][j].getNoten()+zaehler/2);
//          schueler[i][j].setNoten(zaehler);

          if(schueler[i][j].getNoten()<=1.6)
            schueler[i][j].setNoten(1);
          if(schueler[i][j].getNoten()<=2.6)
            schueler[i][j].setNoten(2);
          if(schueler[i][j].getNoten()<=3.6)
            schueler[i][j].setNoten(3);
          if(schueler[i][j].getNoten()<=4.2)
            schueler[i][j].setNoten(4);
          else
            schueler[i][j].setNoten(5);
//        if(schueler[i][j].getNoten()<1.1)
//          schueler[i][j].setNoten(1);
//        if(schueler[i][j].getNoten()>4.9)
//          schueler[i][j].setNoten(5);
        }
      }
        //System.out.println(schueler[j][k].getNoten());

//    try{Thread.currentThread().sleep(5000);
//      }catch(InterruptedException e){}
    System.out.println("fertig");

//     }while(i<5);
  }

  public void berechneSemester(){
    boolean rand=false;
    //links hinten
    for(int i=0; i<reihe; i++)
      for(int j=0; j<sitzePR; j++){
        System.out.println("blabla...");
        if(i==0||j==0){rand=true;}
        if(rand==true){rand=false;}
        else{
          if(schueler[i][j]==null||schueler[i-1][j-1]==null){}
          else{
            if(schueler[i-1][j-1].getVerhalten()<3)
              schueler[i][j].setVerhalten(schueler[i][j].getVerhalten()+0.1);
            else
              schueler[i][j].setVerhalten(schueler[i][j].getVerhalten()-0.1);

            if(schueler[i-1][j-1].getSchummeln()<3)
              schueler[i][j].setSchummeln(schueler[i][j].getSchummeln()+0.1);
            else
              schueler[i][j].setSchummeln(schueler[i][j].getSchummeln()-0.1);

            if(schueler[i-1][j-1].getMitarbeit()<3)
              schueler[i][j].setMitarbeit(schueler[i][j].getMitarbeit()+0.1);
            else
              schueler[i][j].setMitarbeit(schueler[i][j].getMitarbeit()-0.1);

            if(schueler[i-1][j-1].getFleiss()<3)
              schueler[i][j].setFleiss(schueler[i][j].getFleiss()+0.1);
            else
              schueler[i][j].setFleiss(schueler[i][j].getFleiss()-0.1);

            if(schueler[i-1][j-1].getIntelligenz()<3)
              schueler[i][j].setIntelligenz(schueler[i][j].getIntelligenz()+0.1);
            else
              schueler[i][j].setIntelligenz(schueler[i][j].getIntelligenz()-0.1);
          }
        }
      }
    //hinten
    for(int i=0; i<reihe; i++)
      for(int j=0; j<sitzePR; j++){
        System.out.println("blabla...");
        if(i==0){rand=true;}
        if(rand==true){rand=false;}
        else{
          if(schueler[i][j]==null||schueler[i-1][j]==null){}
          else{
            if(schueler[i-1][j].getVerhalten()<3)
              schueler[i][j].setVerhalten(schueler[i][j].getVerhalten()+0.1);
            else
              schueler[i][j].setVerhalten(schueler[i][j].getVerhalten()-0.1);

            if(schueler[i-1][j].getSchummeln()<3)
              schueler[i][j].setSchummeln(schueler[i][j].getSchummeln()+0.1);
            else
              schueler[i][j].setSchummeln(schueler[i][j].getSchummeln()-0.1);

            if(schueler[i-1][j].getMitarbeit()<3)
              schueler[i][j].setMitarbeit(schueler[i][j].getMitarbeit()+0.1);
            else
              schueler[i][j].setMitarbeit(schueler[i][j].getMitarbeit()-0.1);

            if(schueler[i-1][j].getFleiss()<3)
              schueler[i][j].setFleiss(schueler[i][j].getFleiss()+0.1);
            else
              schueler[i][j].setFleiss(schueler[i][j].getFleiss()-0.1);

            if(schueler[i-1][j].getIntelligenz()<3)
              schueler[i][j].setIntelligenz(schueler[i][j].getIntelligenz()+0.1);
            else
              schueler[i][j].setIntelligenz(schueler[i][j].getIntelligenz()-0.1);
          }
        }
      }
    //rechts hinten
    for(int i=0; i<reihe; i++)
      for(int j=0; j<sitzePR; j++){
        System.out.println("blabla...");
        if(i==0||j==sitzePR-1){rand=true;}
        if(rand==true){rand=false;}
        else{
          if(schueler[i][j]==null||schueler[i-1][j+1]==null){}
          else{
            if(schueler[i-1][j+1].getVerhalten()<3)
              schueler[i][j].setVerhalten(schueler[i][j].getVerhalten()+0.1);
            else
              schueler[i][j].setVerhalten(schueler[i][j].getVerhalten()-0.1);

            if(schueler[i-1][j+1].getSchummeln()<3)
              schueler[i][j].setSchummeln(schueler[i][j].getSchummeln()+0.1);
            else
              schueler[i][j].setSchummeln(schueler[i][j].getSchummeln()-0.1);

            if(schueler[i-1][j+1].getMitarbeit()<3)
              schueler[i][j].setMitarbeit(schueler[i][j].getMitarbeit()+0.1);
            else
              schueler[i][j].setMitarbeit(schueler[i][j].getMitarbeit()-0.1);

            if(schueler[i-1][j+1].getFleiss()<3)
              schueler[i][j].setFleiss(schueler[i][j].getFleiss()+0.1);
            else
              schueler[i][j].setFleiss(schueler[i][j].getFleiss()-0.1);

            if(schueler[i-1][j+1].getIntelligenz()<3)
              schueler[i][j].setIntelligenz(schueler[i][j].getIntelligenz()+0.1);
            else
              schueler[i][j].setIntelligenz(schueler[i][j].getIntelligenz()-0.1);
          }
        }
      }
    //rechts
    for(int i=0; i<reihe; i++)
      for(int j=0; j<sitzePR; j++){
        System.out.println("blabla...");
        if(j==sitzePR-1){rand=true;}
        if(rand==true){rand=false;}
        else{
          if(schueler[i][j]==null||schueler[i][j+1]==null){}
          else{
            if(schueler[i][j+1].getVerhalten()<3)
              schueler[i][j].setVerhalten(schueler[i][j].getVerhalten()+0.1);
            else
              schueler[i][j].setVerhalten(schueler[i][j].getVerhalten()-0.1);

            if(schueler[i][j+1].getSchummeln()<3)
              schueler[i][j].setSchummeln(schueler[i][j].getSchummeln()+0.1);
            else
              schueler[i][j].setSchummeln(schueler[i][j].getSchummeln()-0.1);

            if(schueler[i][j+1].getMitarbeit()<3)
              schueler[i][j].setMitarbeit(schueler[i][j].getMitarbeit()+0.1);
            else
              schueler[i][j].setMitarbeit(schueler[i][j].getMitarbeit()-0.1);

            if(schueler[i][j+1].getFleiss()<3)
              schueler[i][j].setFleiss(schueler[i][j].getFleiss()+0.1);
            else
              schueler[i][j].setFleiss(schueler[i][j].getFleiss()-0.1);

            if(schueler[i][j+1].getIntelligenz()<3)
              schueler[i][j].setIntelligenz(schueler[i][j].getIntelligenz()+0.1);
            else
              schueler[i][j].setIntelligenz(schueler[i][j].getIntelligenz()-0.1);
          }
        }
      }
    //rechts vorne
    for(int i=0; i<reihe; i++)
      for(int j=0; j<sitzePR; j++){
        System.out.println("blabla...");
        if(i==reihe-1||j==sitzePR-1){rand=true;}
        if(rand==true){rand=false;}
        else{
          if(schueler[i][j]==null||schueler[i+1][j+1]==null){}
          else{
            if(schueler[i+1][j+1].getVerhalten()<3)
              schueler[i][j].setVerhalten(schueler[i][j].getVerhalten()+0.1);
            else
              schueler[i][j].setVerhalten(schueler[i][j].getVerhalten()-0.1);

            if(schueler[i+1][j+1].getSchummeln()<3)
              schueler[i][j].setSchummeln(schueler[i][j].getSchummeln()+0.1);
            else
              schueler[i][j].setSchummeln(schueler[i][j].getSchummeln()-0.1);

            if(schueler[i+1][j+1].getMitarbeit()<3)
              schueler[i][j].setMitarbeit(schueler[i][j].getMitarbeit()+0.1);
            else
              schueler[i][j].setMitarbeit(schueler[i][j].getMitarbeit()-0.1);

            if(schueler[i+1][j+1].getFleiss()<3)
              schueler[i][j].setFleiss(schueler[i][j].getFleiss()+0.1);
            else
              schueler[i][j].setFleiss(schueler[i][j].getFleiss()-0.1);

            if(schueler[i+1][j+1].getIntelligenz()<3)
              schueler[i][j].setIntelligenz(schueler[i][j].getIntelligenz()+0.1);
            else
              schueler[i][j].setIntelligenz(schueler[i][j].getIntelligenz()-0.1);
          }
        }
      }
    //vorne
    for(int i=0; i<reihe; i++)
      for(int j=0; j<sitzePR; j++){
        System.out.println("blabla...");
        if(i==reihe-1==true){rand=true;}
        if(rand==true){rand=false;}
        else{
          if(schueler[i][j]==null||schueler[i+1][j]==null){}
          else{
            if(schueler[i+1][j].getVerhalten()<3)
              schueler[i][j].setVerhalten(schueler[i][j].getVerhalten()+0.1);
            else
              schueler[i][j].setVerhalten(schueler[i][j].getVerhalten()-0.1);

            if(schueler[i+1][j].getSchummeln()<3)
              schueler[i][j].setSchummeln(schueler[i][j].getSchummeln()+0.1);
            else
              schueler[i][j].setSchummeln(schueler[i][j].getSchummeln()-0.1);

            if(schueler[i+1][j].getMitarbeit()<3)
              schueler[i][j].setMitarbeit(schueler[i][j].getMitarbeit()+0.1);
            else
              schueler[i][j].setMitarbeit(schueler[i][j].getMitarbeit()-0.1);

            if(schueler[i+1][j].getFleiss()<3)
              schueler[i][j].setFleiss(schueler[i][j].getFleiss()+0.1);
            else
              schueler[i][j].setFleiss(schueler[i][j].getFleiss()-0.1);

            if(schueler[i+1][j].getIntelligenz()<3)
              schueler[i][j].setIntelligenz(schueler[i][j].getIntelligenz()+0.1);
            else
              schueler[i][j].setIntelligenz(schueler[i][j].getIntelligenz()-0.1);
          }
        }
      }
    //links vorne
    for(int i=0; i<reihe; i++)
      for(int j=0; j<sitzePR; j++){
        System.out.println("blabla...");
        if(i==reihe-1||j==0){rand=true;}
        if(rand==true){rand=false;}
        else{
          if(schueler[i][j]==null||schueler[i+1][j-1]==null){}
          else{
            if(schueler[i+1][j-1].getVerhalten()<3)
              schueler[i][j].setVerhalten(schueler[i][j].getVerhalten()+0.1);
            else
              schueler[i][j].setVerhalten(schueler[i][j].getVerhalten()-0.1);

            if(schueler[i+1][j-1].getSchummeln()<3)
              schueler[i][j].setSchummeln(schueler[i][j].getSchummeln()+0.1);
            else
              schueler[i][j].setSchummeln(schueler[i][j].getSchummeln()-0.1);

            if(schueler[i+1][j-1].getMitarbeit()<3)
              schueler[i][j].setMitarbeit(schueler[i][j].getMitarbeit()+0.1);
            else
              schueler[i][j].setMitarbeit(schueler[i][j].getMitarbeit()-0.1);

            if(schueler[i+1][j-1].getFleiss()<3)
              schueler[i][j].setFleiss(schueler[i][j].getFleiss()+0.1);
            else
              schueler[i][j].setFleiss(schueler[i][j].getFleiss()-0.1);

            if(schueler[i+1][j-1].getIntelligenz()<3)
              schueler[i][j].setIntelligenz(schueler[i][j].getIntelligenz()+0.1);
            else
              schueler[i][j].setIntelligenz(schueler[i][j].getIntelligenz()-0.1);
          }
        }
      }
    //links
    for(int i=0; i<reihe; i++)
      for(int j=0; j<sitzePR; j++){
        System.out.println("blabla...");
        if(j==0){rand=true;}
        if(rand==true){rand=false;}
        else{
          if(schueler[i][j]==null||schueler[i][j-1]==null){}
          else{
            if(schueler[i][j-1].getVerhalten()<3)
              schueler[i][j].setVerhalten(schueler[i][j].getVerhalten()+0.1);
            else
              schueler[i][j].setVerhalten(schueler[i][j].getVerhalten()-0.1);

            if(schueler[i][j-1].getSchummeln()<3)
              schueler[i][j].setSchummeln(schueler[i][j].getSchummeln()+0.1);
            else
              schueler[i][j].setSchummeln(schueler[i][j].getSchummeln()-0.1);

            if(schueler[i][j-1].getMitarbeit()<3)
              schueler[i][j].setMitarbeit(schueler[i][j].getMitarbeit()+0.1);
            else
              schueler[i][j].setMitarbeit(schueler[i][j].getMitarbeit()-0.1);

            if(schueler[i][j-1].getFleiss()<3)
              schueler[i][j].setFleiss(schueler[i][j].getFleiss()+0.1);
            else
              schueler[i][j].setFleiss(schueler[i][j].getFleiss()-0.1);

            if(schueler[i][j-1].getIntelligenz()<3)
              schueler[i][j].setIntelligenz(schueler[i][j].getIntelligenz()+0.1);
            else
              schueler[i][j].setIntelligenz(schueler[i][j].getIntelligenz()-0.1);
          }
        }
      }
      //Extreme vermeiden
      for(int i=0;i<reihe;i++)
        for(int j=0;j<sitzePR; j++){
          if(schueler[i][j]==null){}
          else{
            if(schueler[i][j].getVerhalten()<1.1)
              schueler[i][j].setVerhalten(1);
            if(schueler[i][j].getVerhalten()>4.9)
              schueler[i][j].setVerhalten(5);

            if(schueler[i][j].getSchummeln()<1.1)
              schueler[i][j].setSchummeln(1);
            if(schueler[i][j].getSchummeln()>4.9)
              schueler[i][j].setSchummeln(5);

            if(schueler[i][j].getMitarbeit()<1.1)
              schueler[i][j].setMitarbeit(1);
            if(schueler[i][j].getMitarbeit()>4.9)
              schueler[i][j].setMitarbeit(5);

            if(schueler[i][j].getFleiss()<1.1)
              schueler[i][j].setFleiss(1);
            if(schueler[i][j].getFleiss()>4.9)
              schueler[i][j].setFleiss(5);

            if(schueler[i][j].getIntelligenz()<1.1)
              schueler[i][j].setIntelligenz(1);
            if(schueler[i][j].getIntelligenz()>4.9)
              schueler[i][j].setIntelligenz(5);
          }
        }
  }

  public void actionPerformed(ActionEvent e){
    if(e.getSource()==jahr){
      berechneSchritt();
      aktualisiereSpiel();
    }

    if(e.getSource() == button1){
      try{
        reihe=Integer.parseInt(reiheT.getText());
        sitzePR=Integer.parseInt(anzahlJeReiheT.getText());
        if(reihe*sitzePR>30){
          JOptionPane.showMessageDialog(c,"Höchstanzahl 30 Schüler");
        repaint();
        }
        else{
          remove(panel1);
          remove(button1);
          erstelleKlasse();
          setAnfang();
          aktualisiereSpiel();
        }

      }catch(NumberFormatException e1){}
    }

    for(int i=0; i<reihe; i++)
      for(int j=0; j<sitzePR; j++)
        if(e.getSource() == schueler[i][j].Schueler())
          System.out.println("juhu");

    if(e.getSource() == einzel){
      semester=semester+1;
      berechneSemester();
      aktualisiereSpiel();
      JOptionPane.showMessageDialog(c,semester+".tes Semester vorbei");
      if(semester==2||semester==4||semester==6||semester==8||semester==10){
        berechneSchritt();
        aktualisiereSpiel();
        durchsucheNachNegativenSchueler();
      }
    }

  }//actionPerformed

  public double notendurchschnittDerKlasse(){
    double zaehler=0;
    double anzahl=reihe*sitzePR;
    for(int i=0; i<reihe; i++)
      for(int j=0; j<sitzePR; j++)
        if(schueler[i][j]==null)
          anzahl = anzahl-1;
        else
          zaehler += schueler[i][j].getNoten();
    return zaehler/anzahl;
  }

  public void setAnfang(){
         //norden
         norden.add(new JLabel(new ImageIcon(getImage(getClass().getResource("Life Game2.gif")))));
         // süden
         //darstellung.add(alles);
         //darstellung.add(einzel);
         sueden.setLayout(new FlowLayout(FlowLayout.RIGHT));
         sueden.add(jahr);
         sueden.add(alles);
         sueden.add(einzel);
         //East
         osten.add(new JLabel(new ImageIcon(getImage(getClass().getResource("Anzeige.gif")))));
         //Westen
         westen.add(new JLabel(new ImageIcon(getImage(getClass().getResource("lehrer.gif")))));
  }

  public boolean nachpruefungPositiv(){
     Random r = new Random();
     int g = r.nextInt(100)+1;
     if(g<60)
      return true;
     else
      return false;
  }

  public void durchsucheNachNegativenSchueler(){
    for(int i=0; i<reihe; i++)
      for(int j=0; j<sitzePR; j++){
        if(schueler[i][j]==null){}
        else{
           if(schueler[i][j].getNoten()==5){
             JLabel negativ = new JLabel("hat eine Negative Note");
             JPanel schuelerP = new JPanel();
             schuelerP=schueler[i][j].Schueler();
             schuelerP.add(negativ);
             JOptionPane.showMessageDialog(c,schuelerP);

             if(nachpruefungPositiv()==true){
               JLabel geschafft = new JLabel("hat die Nachprüfung geschafft");
               JPanel schuelerGeschafft = new JPanel();
               schuelerGeschafft=schueler[i][j].Schueler();
               schuelerGeschafft.add(geschafft);
               JOptionPane.showMessageDialog(c,schuelerGeschafft);
             }
             else{
               JLabel durchgefallen = new JLabel("hat die Nachprüfung nicht geschafft");
               JPanel schuelerDurchgefallen = new JPanel();
               schuelerDurchgefallen=schueler[i][j].Schueler();
               schuelerDurchgefallen.add(durchgefallen);
               JOptionPane.showMessageDialog(c,schuelerDurchgefallen);
               schueler[i][j]=null;
               aktualisiereSpiel();
            }
          }
        }
      }
  }


  public void aktualisiereSpiel(){
    remove(mitte);
    remove(sueden);
    remove(osten);

    // alles ins Layout
    c.setLayout(new BorderLayout(30,30));
    c.add(norden, BorderLayout.NORTH);
    c.add(sueden, BorderLayout.SOUTH);
    c.add(westen, BorderLayout.WEST);
    //Osten
    osten=aktualisiereAnzeige();
    c.add(osten, BorderLayout.EAST);
    //Mitte

    mitte=aktualisiereSitzplan();

 //   for(int i=0; i<reihe; i++)
 //     for(int j=0; j<sitzePR; j++)
 //       mitte.add(schueler[i][j].Schueler());
    c.add(mitte, BorderLayout.CENTER);
    validate();
    repaint();
  }

  public JPanel aktualisiereAnzeige(){
   JPanel anzeige = new JPanel();
   anzeige.setLayout(new GridLayout(2,1));
   anzeige.add(new JLabel(new ImageIcon(getImage(getClass().getResource("Anzeige.gif")))));
   anzeige.add(new JLabel(""+notendurchschnittDerKlasse()));
   return anzeige;
  }

  public JPanel aktualisiereSitzplan(){
    JPanel sitzplan = new JPanel();
    sitzplan.setLayout(new GridLayout(reihe,sitzePR));
    for(int i=0; i<reihe; i++)
      for(int j=0; j<sitzePR; j++)
        if(schueler[i][j]==null)
          sitzplan.add(new JLabel());
        else
          sitzplan.add(schueler[i][j].Schueler());
    return sitzplan;
  }

  //keine besonderen Aktionen
  public void stop(){}

  public void versetze(int i, int j, int x, int y){
    JSchueler hilf = new JSchueler();
    hilf = schueler[i][j];
    schueler[i][j] = schueler[x][y];
    schueler[x][y] = hilf;
    aktualisiereSpiel();
  }

}//end class

sorry falls ich euch schon auf die nerven geh :confused:
 
Nicht dein Layout, sondern deine ActionListenerKlasse fängt das Ereignisin der Methode actionPerformed ab! In deinem Fall fügst du als ActionListener ja die Klasse JSchuler selbst hinzu, also wird in selbiger Klasse in der actionPerformed-Methode ein Ereigniss abgefangen
 
ich hätte aber eben gern, dass ich im JLayout abfragen kann welcher JSchueler aus dem Array ausgewählt worden ist... da ich die Schüler ja in meinem Array im JLyout vertauschen muss...
=> nach 2 Semester darf der benutzer zwei schüler auswählen die platz tauschen sollen
und da sollte ich eben herausbekommen welcher name(Schueler) gedrückt worden ist.

ist mein problem jetzt ein bisschen klarer?
 
Zurück