私はTextFieldを持っています。ユーザー入力給料があります。 TFには、デフォルトロケールに基づくTextFormatterがあります。あなたのよう javafx:TextFieldの+ FORMAT結果でラベルのテキストプロパティをバインドします。
:
TextField text = new TextField();
Label show = new Label();
TextFormatter<Number> formatter = new TextFormatter<>(new FormatStringConverter<>(DecimalFormat.getNumberInstance()));
text.setTextFormatter(formatter);
show.textProperty().bind(Bindings.concat(text.getTextFormatter().valueProperty().asString())
.concat(" ").concat(Currency.getInstance(Locale.getDefault()).getCurrencyCode()));
return new HBox(text, show);
結果:TextFieldの隣にラベルがこのラベルでは、私はこれのすべてについて、私はこのコードを使用して、通貨としてフォーマットのTextFieldのテキストを表示したい、そこにありますラベルテキストは数値としてフォーマットされていません - フォーマッタが適用されていないためです。 私の質問だから、ラベルのテキストをフォーマットし、同じ時間をTextField TextPropertyにバインドすることはできますか?
誰かが求めることができる:なぜのような代わりに数フォーマッタの通貨フォーマッタを使用しない:答えは、ユーザーが値を入力したいとき、ある、彼はすべての桁を削除する必要がありますだけでなく
new TextFormatter<>(new FormatStringConverter<>(DecimalFormat.getCurrencyInstance()));
BUTたとえばドル記号の場合、ユーザーがドル記号なしで値を入力すると、新しい値は受け入れられません。
そのため、書式設定された値をラベルの通貨として表示し、通貨フォーマッタを使用しません。ありがとう。