ActionListener

Neue Frage »

Auf diesen Beitrag antworten »
WI ActionListener

Hallo ich soll ein Programm schreiben, das ein Textfeld1 hat, man gibt eine Temperatur in Celcius ein drückt einen Button, dann erscheinen die Celcius in Fahreneinheit umgerechnet in Textfeld2.
Das gleiche soll umgekehrt möglich sein.
Leider passt mein ActionListener wohl nicht, da einfach die Umrechnung nicht stattfindet.

Hier mal mein Code dazu.


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

public class ConverterFinal extends JFrame
{
Container ContentPane= getContentPane();
ImageIcon icon = new ImageIcon("schmetterling_rosa_150.jpg");
JLabel bildLabel = new JLabel(icon);
JTextField TF1= new JTextField(10);
JTextField TF2= new JTextField(10);
JButton B1= new JButton("UMRECHNEN");

ConverterFinal()
{
ContentPane.setLayout(new FlowLayout(0));
ContentPane.add(TF1);
ContentPane.add(B1);
ContentPane.add(TF2);
ContentPane.add(bildLabel);

class ButtonEventHandler implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
if(event.getSource() == TF1)
{
double z1 = Double.parseDouble(TF1.getText());
double sum = z1*1.8+32;
TF2.setText(""+sum);
}

else if(event.getSource() == TF2)
{
double z1 = Double.parseDouble(TF2.getText());
double sum = z1/1.8-32;
TF1.setText(""+sum);
}}
ButtonEventHandler()
{
}
}

B1.addActionListener(new ButtonEventHandler());



setTitle("Umrechnung");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setVisible(true);
}
public static void main(String[]args)
{
new ConverterFinal();
}
}

Wo liegt denn da mein Fehler?
 
Auf diesen Beitrag antworten »
MaBa RE: ActionListener

Hallo WI,

der Fehler liegt in der Fallunterscheidung

code:
1:
2:
3:
4:
if(event.getSource() == TF1)
//...
else if(event.getSource() == TF2)


Die Quelle des Events ist der Button und nicht eins der Textfelder. D.h. dein Listener arbeitet korrekt, aber keine der Prüfungen hat Erfolg, da wede dein TF1 noch dein TF2 das Event ausgelöst haben und damit passiert auch nichts.

Viele Grüße,
MaBa
Auf diesen Beitrag antworten »
WI

Vielen Dank für die Antwort, hat mir sehr geholfen smile
 
Neue Frage »
Antworten »


Verwandte Themen