これは私のコードです:jFormatedTextField通貨形式
// create the formatters, default, display, edit
NumberFormatter defaultFormatter = new NumberFormatter(new DecimalFormat("#.##"));
NumberFormatter displayFormatter = new NumberFormatter(new DecimalFormat("#.##€"));
NumberFormatter editFormatter = new NumberFormatter(new DecimalFormat("#.##"));
// set their value classes
defaultFormatter.setValueClass(Double.class);
displayFormatter.setValueClass(Double.class);
editFormatter.setValueClass(Double.class);
// create and set the DefaultFormatterFactory
DefaultFormatterFactory valueFactory = new DefaultFormatterFactory(defaultFormatter,displayFormatter,editFormatter);
jFormattedTextField4.setFormatterFactory(valueFactory);
jFormattedTextField1.setFormatterFactory(valueFactory);
時にユーザーの入力値Iは、(2.33)のように、ポイントと(2€にformatedtextfield変更を問題を取得しています)これはユーザーが有効な値を入力したためではありません。 結果が(2.33)であり、結果が(2.33)でなければならないので、再び(2.33)である必要があります。
基本的には常にフォーマット(X.XX)が必要です。 例:
入力私が欲しいものを対: 2から2.00€/ 2,22-2.22€/ 312.54から312.54€/ 432から432.00€/ 2,2-2.20€
EDITED:1週間前、これはうまくいきました。別のウィンドウでこのプロジェクトをマウントした後に問題が表示されます。この時点で私はポルトガル語のキーボードを持っています。問題が任意のウィンドウまたはシステムプロパティに関係している可能性はありますか?
編集:まだヘルプを探しています。誰でも??? :あなたは何かがによって制限フォーマッタを定義する(「one week ago this was working, after i mount this project in another windows the issue appear....
」)
および/またはそこにあなたができるあなたの説明で間違っていたことを確認し、代わりにプレーンなバニラのDecimalFormatの、getCurrencyInstance()を使用する必要が
を必要と – user3753426