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?
Alles anzeigen
Danke für eure Hilfe!
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?
Quellcode
- 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());
- tf1.setText(String.format("%,1f"));
- if (s.hasNextFloat()) {
- zahl = s.nextFloat();
- Index = temp1Liste.getSelectedIndex();
- Index2 = temp2Liste.getSelectedIndex(); //JComboBox
- s.close();
- //String.format("%,1f"))
- }
- if (temp1[0] == temp1[0]) { /*Ich möchte jetzt die Indizes 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;
- }
- else if (temp1[0] == temp1[1]) {
- ergebnis = (celsius = (kelvin - 273.15));
- }
- else if (temp1[0] == temp1[2]) {
- ergebnis = (celsius = ((fahrenheit - 32.0 ) * (5.0/9.0)));
- }
- else if (temp1[1] == temp1[1]) {
- return;
- }
- else if (temp1[1] == temp1[0]) {
- ergebnis = (kelvin = (celsius + 273.15));
- }
- else if (temp1[1] == temp1[2]) {
- ergebnis = (kelvin = ((fahrenheit - 459.67) * (5.0/9.0)));
- }
- else if (temp1[2] == temp1[2]) {
- return;
- }
- else if (temp1[2] == temp1[0]) {
- ergebnis = (fahrenheit = ((celsius * (9/5.0)) + 32));
- }
- else if (temp1[2] == temp1[1]) {
- ergebnis = (fahrenheit = ((kelvin * 9/5.0) - 459.67));
- }
- }
- }
Danke für eure Hilfe!