import java.awt.*;
import java.awt.event.*;
public class Hauptprogramm extends XYFrame
{
private ThermometerCanvas bc;
private SteuerPanel sp;
private int hoehe;
public Hauptprogramm()
{
super("Thermometer");
setSize(800,600);
setLocation(50,50);
sp = new SteuerPanel();
sp.setLocation(20,100);
sp.addActionListener(this);
add(sp);
bc = new ThermometerCanvas();
bc.setLocation(200,40);
bc.setHoehe(200);
add(bc);
setVisible(true);
}
/**
* Die Methode actionPerformed, empfängt, verarbeitet und schickt
* die Nachrichten weiter, die es aus dem SteuerPanel
* bekommt.
*/
public void actionPerformed(ActionEvent e)
{
Object quelle;
String command;
quelle = e.getSource();
command = e.getActionCommand();
temperatur(command);
}
/**
* Die Methode temperatur, ändert die Höhe ( die Temperatur ) des Thermomters
* Es wird immer um eine bestimmte Anzahl an Pixel erhöht.
*/
public void temperatur(String command)
{
try
{
Thread.sleep(2000);
}
catch(Exception e)
{
//Fehlerbehandlung
}
if(command.equals("Stufe1")&&bc.getHoehe()<=390)
bc.setHoehe(bc.getHoehe()+10);
else if(command.equals("Stufe2")&&bc.getHoehe()<=390)
bc.setHoehe(bc.getHoehe()+20);
else if(command.equals("Stufe3")&&bc.getHoehe()<=390)
bc.setHoehe(bc.getHoehe()+30);
else if(command.equals("Stufe4")&&bc.getHoehe()<=390)
bc.setHoehe(bc.getHoehe()+40);
else if(command.equals("Stufe5")&&bc.getHoehe()<=390)
bc.setHoehe(bc.getHoehe()+50);
else if(command.equals("FensterAuf")&&bc.getHoehe()<=500)
bc.setHoehe(bc.getHoehe()-50);
else if(command.equals("FensterZu")&&bc.getHoehe()<=390)
bc.setHoehe(bc.getHoehe()+1);
}
public static void main(String[] args) //Das Hauptprogramm wird gestartet
{
new Hauptprogramm();
}
}
Ich habe jetzt eine zwischen Lösung, aber das ist auch nichts ganzes und nichts halbes...
Bei der Methode temperatur, soll wenn ein Button gedrückt wird z.B. alle 2Sekunden die Temperatir erhöht werden, also nicht erst wenn ich einen Button drücke, sondern, wenn ich 1 mal drücke, dann soll solange alle 2 Sekunden erhöht werden bis ich etwas anderes drücke...
Verstehst du wie ich es meinte?
danke schonmal
lg