Temperatur Umrechner - Echtzeit

Askadi

Mitglied
Hallo...

habe ein Problem will ein kleines Programm machen das bei eingabe einer Zahl in ein Textfeld z.b. 10 diese in 2 Labels umgerechnet ausgibt als Celsius und Fahrenheit.

Mit Buttons wär das kein Problem darum wollte ich mal versuchen es ohne zu machen also in Echtzeit.

Hier mein Lösungsansatz:
Vll kann mir jemand weiterhelfen

EDIT: Mein Problem noch dazuschreiben wär nicht schlecht, es wird nix angezeigt aber die Schleife ist wohl am laufen. Das kein Text eingegeben werden darf hab ich für den Anfang einfach ignoriert das kann man manchen wenn es läuft.

Java:
package umrechner;

import javax.swing.*;


public class umrechner extends JFrame
{


	umrechner()
	{
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		setBounds(10,10,500,300);
		add(new duwag());
		setVisible(true);
	}
	
	
	public static void main(String[] args) 
	{
		// TODO Auto-generated method stub

		
		new umrechner();
		Thread t1 = new Thread(new duwag());
		t1.start();
		
		
	}

}

Java:
package umrechner;

import javax.swing.*;



public class duwag extends JPanel implements Runnable
{

	
	JTextField eingabe = new JTextField("33");
	JLabel f = new JLabel();
	JLabel c = new JLabel();
	
	
	duwag()
	{
		
		setLayout(null);
		
		
		eingabe.setBounds(10,10,100,50);	
		f.setBounds(10,60,100,50);
		c.setBounds(10,110,100,50);
		
		
		
		add(eingabe);
		add(c);
		add(f);
	}
	
	
	
	
	public void run()
	{
		while(true)
		{
			
			double x = Double.parseDouble(eingabe.getText());
			double ce = (x-32)*(5/9);
			double fa = x * 1.8 +32;
			
			f.setText("F: " + fa);
			c.setText("C: " + ce);
			
			
		}
		
	}
	
}
 
M

Marcinek

Gast
Schon was von Listenern gehört?

DocumentListner
KeyListener?

Kann man alles verwenden nur deine Lösung ist iwie aa.

Änderungen an der GUI kann man nur im EDT machen ;)
 
Zuletzt bearbeitet von einem Moderator:

bERt0r

Top Contributor
So wie ich das verstehe willst du permanent den Text in deinem Textfeld abfragen und dann irgendeine Berechnung machen. Das ist aber ein sehr verschwenderischer und unschöner Ansatz. Du kannst z.B mit einem KeyListerner ganz einfach auf Änderungen in deinem Textfeld reagieren und nur wirklich dann eine Berechnung anstellen, wenn sich das Textfeld geändert hat.
 

Xeonkryptos

Bekanntes Mitglied
Muss ich meinen Vorrednern recht geben. Wollte ich auch vorschlagen, aber sie waren halt schneller :D

Bitte gewöhne dir an Klassen IMMER groß zu schreiben! Sonst denkt man hier, du verwendest eine Variable! Die Konventionen vereinfachen einem das Lesen deines Codes! :)
 

hdi

Top Contributor
Besser als KeyListener ist CaretListener. Der reagiert nämlich immer, wenn sich am Inhalt des Textfeldes etwas ändert, und ist nicht darauf beschränkt dass diese Änderung durch eine Tastatureingabe hervorgerufen wurde.

edit: Und noch besser als CaretListener ist der bereits erwähnte DocumentListener :D
 
Zuletzt bearbeitet:

Ähnliche Java Themen

Neue Themen


Oben