# Probleme mit ActionListener bzw. actionPerformed



## Sindbad1983 (28. Sep 2004)

Hallo!


Bitte könnte mir jemand helfen!?! 
Ich such schon seit einer Stunde nach dem Fehler, finde ihn aber leider nicht!


Was soll das Programm können?

Schreiben Sie ein Java-Programm, das ein Warnfenster mit einem Label od. TextField und zwei Buttons realisiert. Das Label/TextField zeigt den Text "Achtung! Ihr Computer wird zu heiß! Zur Zeit: 37° C", der erste Button den Text "Ignorieren", der zweite den Text "Abkühlen". Wird der Button "Ignorieren" gedrückt,  bleibt die Temperatur unverändert, drückt man "Abkühlen", so senkt sich die Temperatur um 1°C! 


Nur das funktioniert eben nicht!
Ich schick hier mal meinen Code mit!
Vielleicht kann mir schnell jemand helfen!

Herzlichen Dank im Voraus!

ciao,Tommy


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


public class TempAnzeige extends JApplet implements ActionListener{



	JButton b1,b2;
                JPanel p1,p2,p3;
      	JTextField t1;
      	int grad=37;
      	String message="Achtung, es wird zu heiß: ";

	public void init(){


		Container c;
		c=getContentPane();
		c.setLayout(new BorderLayout());

		c.setSize(300,300);


		JPanel p1=new JPanel();
		c.add(p1,BorderLayout.NORTH);
		p1.setLayout(new FlowLayout());

		JPanel p2=new JPanel();
		c.add(p2,BorderLayout.SOUTH);
		p2.setLayout(new FlowLayout());
		p2.setBackground(Color.red);

		JPanel p3=new JPanel();
		c.add(p3,BorderLayout.CENTER);
		p3.setLayout(null);

                                JButton b1=new JButton("Abkühlen");
		p1.add(b1);
		b1.addActionListener(this);

		JButton b2=new JButton("Ignorieren");
		p1.add(b2);
		b2.addActionListener(this);

		JTextField t1=new JTextField(message+grad+"°C",16);
		p2.add(t1);
	}


	public void actionPerformed(ActionEvent e){

		if(e.getSource()==b1){


			t1.setText(message+" "+(--grad)+"° C!");

		}
		else if(e.getSource()==b2){
			t1.setText("Temperatur wird beibehalten!");
		}
	} 
}
```

*edit:*Code-tags eingefügt. becstift


----------



## Sky (28. Sep 2004)

Du darfst in deiner init-Methode nicht mehr den Datentyp vor die Buttons und Textfelder usw. schreiben, da sonst lokale neue Objekte erzeugt werden:


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


public class TempAnzeige extends JApplet implements ActionListener{ 



   JButton b1,b2; 
                JPanel p1,p2,p3; 
         JTextField t1; 
         int grad=37; 
         String message="Achtung, es wird zu heiß: "; 

   public void init(){ 


      Container c; 
      c=getContentPane(); 
      c.setLayout(new BorderLayout()); 

      c.setSize(300,300); 


      p1=new JPanel(); // geändert
      c.add(p1,BorderLayout.NORTH); 
      p1.setLayout(new FlowLayout()); 

      p2=new JPanel(); // geändert
      c.add(p2,BorderLayout.SOUTH); 
      p2.setLayout(new FlowLayout()); 
      p2.setBackground(Color.red); 

      p3=new JPanel(); // geändert
      c.add(p3,BorderLayout.CENTER); 
      p3.setLayout(null); 

      b1=new JButton("Abkühlen"); // geändert
      p1.add(b1); 
      b1.addActionListener(this); 

      b2=new JButton("Ignorieren"); // geändert
      p1.add(b2); 
      b2.addActionListener(this); 

      t1=new JTextField(message+grad+"°C",16); // geändert
      p2.add(t1); 
   } 


   public void actionPerformed(ActionEvent e){ 

      if(e.getSource()==b1){ 


         t1.setText(message+" "+(--grad)+"° C!"); 

      } 
      else if(e.getSource()==b2){ 
         t1.setText("Temperatur wird beibehalten!"); 
      } 
   } 
}
```


----------



## Sindbad1983 (28. Sep 2004)

Hey sky 80!!

Vielen Dank für deine schnelle, effiziente Hilfe!!!

Du hast mir einen ganz schwerwiegenden Fehler gesagt...denn jetzt funktionieren die anderen Programme auch! Prima!

Vielen Dank!
bis bald,ciao,Tommy


----------

