Hi,
habe folgendes Problem. Ich möchte zwecks Temperatur-Umwandlung
die Indexe des Strings miteinander vergleichen und den Wert in einem
entsprechenden Feld ausgeben. Dieser Vergleich gelingt jedoch nicht -
muss ich dazu einen Array erstellen, oder lässt sich das Problem auch
anders lösen?
Danke schon mal!
habe folgendes Problem. Ich möchte zwecks Temperatur-Umwandlung
die Indexe des Strings miteinander vergleichen und den Wert in einem
entsprechenden Feld ausgeben. Dieser Vergleich gelingt jedoch nicht -
muss ich dazu einen Array erstellen, oder lässt sich das Problem auch
anders lösen?
Code:
import java.awt.event.*;
import javax.swing.*;
public class A07 extends JApplet implements ActionListener {
int Index; /*Index und Index2 zum Vergleich*/
int Index2;
float zahl; /*"zahl" einlesen, in "ergebnis" speichern und
dann in "tf2" nach Berechnung ausgeben"*/
float ergebnis;
float celsius; //Zur Berchnung der Werte
float fahrenheit;
float kelvin;
JTextField tf1, tf2;
JComboBox temp1Liste, temp2Liste;
JLabel label;
JButton button;
String [] temp1 = {"Grad Celsius","Kelvin","Grad Fahrenheit"};
public void init () {
java.awt.Container c = getContentPane();
c.setLayout(new java.awt.FlowLayout ());
tf1 = new JTextField(5);
temp1Liste = new JComboBox(temp1);
label = new JLabel(" entspricht ");
tf2 = new JTextField(5);
tf2.setEditable(false);
temp2Liste = new JComboBox(temp1);
button = new JButton ("Berechne");
button.addActionListener(this);
c.add(tf1);
c.add(temp1Liste);
c.add(label);
c.add(tf2);
c.add(temp2Liste);
c.add(button);
}
public void actionPerformed(ActionEvent e) {
java.util.Scanner s = new java.util.Scanner(tf1.getText());
if (s.hasNextFloat()) {
zahl = s.nextFloat();
Index = temp1Liste.getSelectedIndex();
Index2 = temp2Liste.getSelectedIndex(); //JComboBox
s.close();
float zahl = Float.parseFloat(zahl.getText()); /*Anstelle eines Punktes, möchte ich ein
Komma benutzen, weiß aber nicht, wie ich
das genau machen muss*/
zahl.setText(String.format("%,1f"));
}
if (Index[0] == Index2[0]) { /*Ich möchte jetzt die Indexe miteinander vergleichen
und dann die Werte ausrechnen, wenn ich "Berechne"
klicke.Allerdings klappt das nicht - muss ich da noch
zwecks Vergleich seinen Array machen, oder geht das auch anders?*/
return ergebnis;
}
else if (Index[0] == Index2[1]) {
celsius = (kelvin - 273.15);
return ergebnis;
}
else if (Index[0] = Index2[2]) {
celsius = ((fahrenheit - 32 ) * (5/9.0));
return ergebnis;
}
else if (Index[1] == Index2[1]) {
return ergebnis;
}
else if (Index[1] == Index2[0]) {
kelvin = (celsius + 273.15);
return ergebnis;
}
else if (Index[1] == Index2[2]) {
kelvin = ((fahrenheit - 459.67) * (5/9.0));
return ergebnis;
}
else if (Index[2] == Index2[2]) {
return ergebnis;
}
else if (Index[2] == Index2[0]) {
fahrenheit = ((celsius * (9/5.0)) + 32);
return ergebnis;
}
else if (Index == Index2) {
return (ergebnis (fahrenheit = ((kelvin * 9/5.0) - 459.67)));
}
}
}
Danke schon mal!