D
DerVerwirrte
Gast
Hallo!
Ich muss für den Informatikunterricht einen Umrechner Fahrenheit-Celsius schreiben. Wenn man in ein TextFeld(°C) einen Wert eingibt, soll im anderen (F) gleich der Wert angezeigt werden, ohne vorher irgendeinen Button zu drücken.
Mein Problem besteht im ActionListener. Ich weiß nicht wie ich es ausdrücken soll, wenn eine Aktion(Berchnung und dann Darstellung im TF) nur durch Eingabe im TextFeld ausgelöst werden kann.
Hier ist der Quelltext, die Problematischen Stellen sind markiert
Danke im Vorraus für eure Hilfe
Ich muss für den Informatikunterricht einen Umrechner Fahrenheit-Celsius schreiben. Wenn man in ein TextFeld(°C) einen Wert eingibt, soll im anderen (F) gleich der Wert angezeigt werden, ohne vorher irgendeinen Button zu drücken.
Mein Problem besteht im ActionListener. Ich weiß nicht wie ich es ausdrücken soll, wenn eine Aktion(Berchnung und dann Darstellung im TF) nur durch Eingabe im TextFeld ausgelöst werden kann.
Hier ist der Quelltext, die Problematischen Stellen sind markiert
Code:
import java.awt.*;
public class Aufg1 extends Frame
{
Panel pnlLeft=new Panel(new FlowLayout(FlowLayout.LEFT));
Panel pnlRight=new Panel(new FlowLayout(FlowLayout.RIGHT));
Label lblCelsius=new Label("Celsius: ");
TextField tfCelsius=new TextField(10);
Label lblFahrenheit=new Label("Fahrenheit: ");
TextField tfFahrenheit=new TextField(10);
derWindowListener myWindowListener=new derWindowListener();
derActionListener myActionListener=new derActionListener(this);
public Aufg1()
{
super("Umrechnung Fahrenheit-Celsius");
this.pnlLeft.add(lblCelsius);
this.pnlLeft.add(tfCelsius);
this.add(pnlLeft,BorderLayout.WEST);
this.pnlRight.add(lblFahrenheit);
this.pnlRight.add(tfFahrenheit);
this.add(pnlRight,BorderLayout.EAST);
this.pack();
this.setVisible(true);
this.addWindowListener(new derWindowListener());
tfCelsius.addActionListener(myActionListener);
tfFahrenheit.addActionListener(myActionListener);
}
public static void main(String[]args)
{
Aufg1 f=new Aufg1();
}
}
import java.awt.event.*;
import java.text.*;
public class derActionListener implements ActionListener
{
public Aufg1 f;
public derActionListener(Aufg1 f)
{
this.f=f;
}
public void actionPerformed(ActionEvent e) <--
{
double celsius;
double fahrenheit;
celsius=Double.parseDouble(f.tfCelsius.getText());
fahrenheit=Double.parseDouble(f.tfFahrenheit.getText());
if(e.getSource()==f.tfCelsius) <--
{
fahrenheit=(celsius*1.8)+32;
f.tfFahrenheit.setText(fahrenheit);
}
else if(e.getSource()==f.tfFahrenheit) <--
{
celsius=(fahrenheit-32)/1.8;
f.tfCelsius.setText(celsius);
}
}
}