F
FranzFerdinand
Gast
Hallöle,
ich möchte ganz gerne einen ganz primitiven Währungsrechner basteln. Einfach nur als Beispiel, ohne dass der jetzt täglich irgendwelche Wechselkurse aus dem Internet zieht, er arbeitet einfach mit primitiven Standardwerten, die ich einmalig festlege.
Aktuell sieht es so aus:
Das ist erst einmal nicht viel, das entspricht erst einmal nur der klassischen Eingabe. Bisher nichts weiter, wie ich dann Zahlen umrechne krieg ich schon noch hin.
Ich scheitere an zwei Dingen, die ich vorher machen möchte:
1) Ich habe mit dem NumberFormat und dem FormattedTextField erreichen können, dass die Textfelder ausschließlich Zahlen annehmen. Aber das entspricht nur ganzen Zahlen. Ich möchte gerne wissen, wie ich dem sagen kann, dass er auch Komma annimmt (meinetwegen auch Punkt) und das im Format für Währung macht. Also dass er stets etwas nach dem Format "*,##" hat.
Ich habe dazu ein wenig gegooglet und bin auf viel Zeuchs mit setCurrency und mit DecimalFormats gestoßen.
Aber ich hab das immer entweder nicht verstanden oder es hat mir die Eigenschaft, dass das Programm generell nur Zahlen annimmt zerschossen.
Kann mir jemand erklären, wie ich das ganze so einbauen kann, wie beschrieben?
2) Etwas fortgeschrittener. Das erste ist erst einmal wichtiger.
Das Programm ist so aufgebaut, dass es nur vier Eingabefelder für die Währungen gibt.
Es gibt keinen Button wo ich draufklicke, nach welche dann ausgerechnet wird.
Ich möchte das so haben, dass er das live umrechnet. Also wenn ich in im Feld für Pfund eine Null wegnehme, dann soll er automatisch und sofort in den anderen drei Feldern entsprechend agieren.
Das Rechnen selbst ist ja kein Problem. Nur dieser Live-Effekt, den man meines Erachtens mit Keyevents machen kann, der ist mir noch etwas unklar.
Kann mir einer von euch meine beiden Probleme genauer erklären?
Danke schön!
Gruß
Lukas
ich möchte ganz gerne einen ganz primitiven Währungsrechner basteln. Einfach nur als Beispiel, ohne dass der jetzt täglich irgendwelche Wechselkurse aus dem Internet zieht, er arbeitet einfach mit primitiven Standardwerten, die ich einmalig festlege.
Aktuell sieht es so aus:
Java:
package rechner;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.Locale;
import javax.swing.JFormattedTextField;
import javax.swing.JOptionPane;
import javax.swing.text.NumberFormatter;
public class Umrechnen {
private NumberFormat format = NumberFormat.getInstance();
private NumberFormatter formatter = new NumberFormatter(format);
public Umrechnen() {
format.setGroupingUsed(false);
formatter.setAllowsInvalid(false);
JFormattedTextField eurofeld = new JFormattedTextField(formatter);
JFormattedTextField dollarfeld = new JFormattedTextField(formatter);
JFormattedTextField pfundfeld = new JFormattedTextField(formatter);
JFormattedTextField frankenfeldfeld = new JFormattedTextField(formatter);
Object[] zahlenfrage = {"<html><b>Bitte gib Dein Startgeld ein.</b></html>", "Euronen", eurofeld, "Dollar", dollarfeld, "Pfund", pfundfeld, "Franken", frankenfeld};
JOptionPane pane = new JOptionPane(zahlenfrage, JOptionPane.PLAIN_MESSAGE, JOptionPane.DEFAULT_OPTION);
pane.createDialog(null, "Währungsrechner").setVisible(true);
}
public static void main(String[] args) {
new Umrechnen();
}
}
Das ist erst einmal nicht viel, das entspricht erst einmal nur der klassischen Eingabe. Bisher nichts weiter, wie ich dann Zahlen umrechne krieg ich schon noch hin.
Ich scheitere an zwei Dingen, die ich vorher machen möchte:
1) Ich habe mit dem NumberFormat und dem FormattedTextField erreichen können, dass die Textfelder ausschließlich Zahlen annehmen. Aber das entspricht nur ganzen Zahlen. Ich möchte gerne wissen, wie ich dem sagen kann, dass er auch Komma annimmt (meinetwegen auch Punkt) und das im Format für Währung macht. Also dass er stets etwas nach dem Format "*,##" hat.
Ich habe dazu ein wenig gegooglet und bin auf viel Zeuchs mit setCurrency und mit DecimalFormats gestoßen.
Aber ich hab das immer entweder nicht verstanden oder es hat mir die Eigenschaft, dass das Programm generell nur Zahlen annimmt zerschossen.
Kann mir jemand erklären, wie ich das ganze so einbauen kann, wie beschrieben?
2) Etwas fortgeschrittener. Das erste ist erst einmal wichtiger.
Das Programm ist so aufgebaut, dass es nur vier Eingabefelder für die Währungen gibt.
Es gibt keinen Button wo ich draufklicke, nach welche dann ausgerechnet wird.
Ich möchte das so haben, dass er das live umrechnet. Also wenn ich in im Feld für Pfund eine Null wegnehme, dann soll er automatisch und sofort in den anderen drei Feldern entsprechend agieren.
Das Rechnen selbst ist ja kein Problem. Nur dieser Live-Effekt, den man meines Erachtens mit Keyevents machen kann, der ist mir noch etwas unklar.
Kann mir einer von euch meine beiden Probleme genauer erklären?
Danke schön!
Gruß
Lukas