0

タイトルはそれをすべて言います。明らかな理由で NumberFormatException が発生します。私は北ヨーロッパ人なので、小数点記号としてドットの代わりにコンマを使用して JTextFields に double 値を入力したいと考えています。

public void actionPerformed(ActionEvent event2) {

    NumberFormat nf = NumberFormat.getInstance(Locale.GERMAN);

    double firstW = Double.parseDouble(firstWeight.getText());
    double secondW = Double.parseDouble(secondWeight.getText());

    double outcome = (firstW - secondW);

    nf.setMaximumFractionDigits(2);
    JLabel result = new JLabel();
    result.setText(nf.format(outcome) +" kg" );

    add(result);
    setVisible(true);

}
4

3 に答える 3

2

をお持ちの場合は、NumberFormat必要なものがすべて揃っています。NumberFormat.parseの代わりに使用してDouble.parseください。ただし、 a を使用するとさらに簡単になりますJFormattedTextField(クラス名からそれが何をするかを推測してください。希望NumberFormatするものをコンストラクターに渡しますnew JFormattedTextField(nf)。つまり、 には最後の有効な編集を返すメソッドがJFormattedTextFieldあります。getValueNumberFormatNumber

ライブラリを知る

于 2013-10-22T15:26:53.700 に答える
1

ボタンを押すと、カンマをドットに置き換えることができます。

String text=textfield.getText().replace(",",".");

そして、textfield.getText(); ではなく、text 変数を使用できます。

于 2013-10-22T15:11:00.830 に答える
0

送信時にテキスト フィールドを反復処理し、カンマが発生した場合は 10 進数に置き換えます。ループの後、文字列を double に変換します

于 2013-10-22T14:53:19.543 に答える