Hallo zusammen!
Ich habe ein, vermutlich eigtl. leicht zu behebendes, Problem bei dem ich einfach nicht auf den Fehler komme.
In 2 Textfelder sollen Zahlen eingeben werden können (Dezimalstellen mit "."), die dann mit einer 3. Zahl aus einer JComboBox verrechnet werden.
Beide Textfelder dienen sowohl zur Eingabe als auch Ergebnislieferung.
Problem:
Geht ein eingegebener Wert in einem der Textfelder > 100.00 kommt ein solches Ergebnis heraus:
6.41.71
anstatt
641.71
Problem 2:
Ein Textfeld soll mit einem InputVerifier die richtige Eingabe der Zahl prüfen.
Aber eingetippte, syntaktisch richtige Werte (10, 10.00 etc) werden nicht angenommen. Es erscheint nur die Fehlermeldung.
Problem 3:
Das zweite Textfeld soll hingegen mit einem FocusListener auf richtige Eingabe geprüft werden. Bei ungültiger Eingabe erzeugt sich die Fehlermeldung aber 3x.
Vielen Dank im Voraus für Anregungen und Hilfe.
Ich habe ein, vermutlich eigtl. leicht zu behebendes, Problem bei dem ich einfach nicht auf den Fehler komme.
In 2 Textfelder sollen Zahlen eingeben werden können (Dezimalstellen mit "."), die dann mit einer 3. Zahl aus einer JComboBox verrechnet werden.
Beide Textfelder dienen sowohl zur Eingabe als auch Ergebnislieferung.
Problem:
Geht ein eingegebener Wert in einem der Textfelder > 100.00 kommt ein solches Ergebnis heraus:
6.41.71
anstatt
641.71
Java:
double unteresTextField= (number3 * 100 / number1);
// Hier wird das Ergebnis gekürzt auf 2 Nachkommastellen
DecimalFormat df = new DecimalFormat("##,##");
String ausgabeKurz = df.format(ausgabePreis);
this.oberesTextField.setText(" " + ausgabeKurz);
if (achtungLabel != null) {
this.achtungLabel.setText("");
}
Ein Textfeld soll mit einem InputVerifier die richtige Eingabe der Zahl prüfen.
Aber eingetippte, syntaktisch richtige Werte (10, 10.00 etc) werden nicht angenommen. Es erscheint nur die Fehlermeldung.
Java:
private void preisFlascheInputVerifier(java.awt.event.FocusEvent evt) {
InputVerifier verifier = new InputVerifier() {
public boolean verify(JComponent number2) {
final JTextComponent source = (JTextComponent) number2;
String preisFlascheText = source.getText();
if ((preisFlascheText.length() != 0) && !(preisFlascheText.equals(source))) {
JOptionPane.showMessageDialog(null,
"Bitte im Feld Flaschenpreis eine (zweistellige) Dezimalzahl eintragen.",
"Fehler", JOptionPane.ERROR_MESSAGE);
((JTextComponent) number2).requestFocusInWindow();
return false;
} else {
return true;
}
}
};
preisFlascheText.setInputVerifier(verifier);
}
Das zweite Textfeld soll hingegen mit einem FocusListener auf richtige Eingabe geprüft werden. Bei ungültiger Eingabe erzeugt sich die Fehlermeldung aber 3x.
Java:
private void preisLiterFocusLost(java.awt.event.FocusEvent evt) {
ausgabeText.addFocusListener(new java.awt.event.FocusAdapter() {
public void focusLost(java.awt.event.FocusEvent evt) {
}
});
if (!(ausgabeText instanceof JTextComponent)) {
return;
}
double number3 = new Double(0.0);
String inhalt = ((JTextComponent) ausgabeText).getText();
try {
number3 = (Double.parseDouble(inhalt));
}
catch (Exception e) {
if (inhalt.equals(ausgabeText)) {
return;
}else
// if (ausgabeText.getText().length() > 0)
{
JOptionPane.showMessageDialog(null,
"Bitte im Literpreis eine (zweistellige) Dezimalzahl eingeben.",
"Fehler", JOptionPane.ERROR_MESSAGE);
((JTextComponent) ausgabeText).requestFocusInWindow();
}}
}
Vielen Dank im Voraus für Anregungen und Hilfe.