Frage

Java verwendet Periode in Dezimalzahlen, z.B. 1/2 = 0,5

Gibt es eine Möglichkeit, es stattdessen das Komma zu machen, wie in 1/2 = 0,5? Und nicht durch Komma für Tausende zu verwenden (wie in hunderttausend = 100.000), aber Gebrauch Raum statt (100 000)?

Wenn es um die Ausgabe kommt nehme ich, dass ich alle Arten von String-Format-Funktionen verwenden können, aber das Problem ist, Eingang (JTable). Einige Spalten erfordern Doppel Format, so dass Benutzer etwas wie 45,5 und in diesen Teilen eingeben müssen, werden sie auf 45,5 :) Vielen Dank im Voraus verwendet

Update:

Ich habe versucht, myTable.setDefaultLocale (Locale.Germany) verwendet wird; aber es hat nicht funktioniert. Ich habe auch Locale.setDefault (Locale.Germany); @ Hauptfunktion und Arbeit hat in ziemlich dumme Art und Weise, aber: während Zelle im Editiermodus ist, müssen Sie wie gewohnt eingeben Punkt, das heißt 45,5 aber nach Sie bestätigen Änderungen drücken Sie die Eingabetaste, wird es als Komma angezeigt : 45,5. Ich meine, es Komma verwendet nur für die Anzeige, aber bei der Bearbeitung seines noch gleichen ol‘Punkt.

Gibt es eine Möglichkeit, es zu beheben ohne benutzerdefiniertes Tabellenmodell zu schreiben?

War es hilfreich?

Lösung

So wollen Sie im Grunde auf convert lokalisiert String Darstellung angeblich in einem numerischen Format in ein Number/BigDecimal und umgekehrt?

Es Sie die Suns eigene Tutorial über die Thema.

Ihre Swing-Anwendung zu lokalisieren, verwenden Sie JComponent#setDefaultLocale() . Z.

JComponent.setDefaultLocale(Locale.GERMANY);

Andere Tipps

Schauen Sie sich auf Formatierung und Analyse einer Nummer für eine Locale :

// Format for CANADA locale
Locale locale = Locale.CANADA;
String string = NumberFormat.getNumberInstance(locale).format(-1234.56); // -1,234.56

// Format for GERMAN locale
locale = Locale.GERMAN;
string = NumberFormat.getNumberInstance(locale).format(-1234.56); // -1.234,56

// Format for the default locale
string = NumberFormat.getNumberInstance().format(-1234.56);


// Parse a GERMAN number
try {
    Number number = NumberFormat.getNumberInstance(locale.GERMAN).parse("-1.234,56");
    if (number instanceof Long) {
        // Long value
    } else {
        // Double value
    }
} catch (ParseException e) {
}

die Eingabe korrekt zu verarbeiten, können Sie Ihre eigenen Tablemodel implementieren und die setValueAt Methode überschrieben werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top