1

Java SE アプリケーションで製品価格を表すために BigDecimal を使用しています。

ユーザーが小数点以下 2 桁のみの数値を入力し、それを BigDecimal 変数/オブジェクトのプロパティにバインドできるようにするには、どのスイング コンポーネントを使用する必要がありますか。(ユーザーのタイプとしてそれを確認します)?

JTextField、JFormattedTextField、NumberFormatter、MaskFormatter で遊んでいますが、解決できません。

それを行うためのこれらのコンポーネントの組み合わせと構成はありますか? または、MaskFormatter、JTextField などを拡張する必要がありますか?

4

2 に答える 2

2

私はこれらの本当に古いスレッドをネクロするのは嫌いですが、私の理解では、StackOverflowは毎日内部で泣き、答えは未解決のままです。

したがって、ここでコードをチェックアウトできます:http ://www.java2s.com/Code/Java/Swing-JFC/ABigDecimalobjectcustomformatter.htm

基本的に、DecimalFormatを使用するようにJFormattedTextFieldに設定します

于 2011-03-08T08:04:03.027 に答える
1

あなたが何をしようとしているのかよくわかりませんが、 Strings をパラメーターとして受け取る BigDecimal コンストラクターがあります (eg に似ていますDouble.parseDouble(String s)):

try
{
    BigDecimal decimal = new BigDecimal(yourJTextField.getText());
}
catch (NumberFormatException nfe)
{ /* error handling */}

詳細については、 BigDecimalのJavaDoc を参照してください。

編集:テキストフィールドへのユーザーの入力をチェック/検証する場合は、手動でチェックするか、バリデーターを使用します ( 「JTextField Validator」の Google の結果を参照してください) 。

于 2010-03-22T20:33:47.987 に答える