2

EclipseのWindowBuilderプラグインを使用してJavaWindowsアプリケーションを作成しようとしています。必要な値を入力すると、正常に機能するJTextFieldがあります。しかし、フィールドのすべての内容をクリアして他の値を再入力しようとすると、値が混乱します。つまり、値がまったく表示されないか、次の行に表示されるように見えます。

DocumentListenerを使用しているので、はい、これにより空の文字列例外が発生する可能性があります。しかし、JTextFieldの内容が再入力時に不適切である理由はわかりません。

私のコードのPFB:

void computeTotal(final JTextField jtf){
    jtf.getDocument().addDocumentListener(new DocumentListener(){
        public void changedUpdate(DocumentEvent e) {
            //warn();
            getTotal();
        }
        public void removeUpdate(DocumentEvent e) {
            //warn();
            getTotal();
        }
        public void insertUpdate(DocumentEvent e) {
            //warn();
            getTotal();
        }
        public void getTotal(){
            bt = Float.parseFloat(billTotal.getText());
            bd = Float.parseFloat(billDeduction.getText()) ;
            ta = Float.parseFloat(taxAmt.getText());
            tt = bt - bd+ ta;
             totalTotal.setText(tt+"");
        }

    });
    }

ここでの問題は何ですか?

4

1 に答える 1

1

ここでの問題は何ですか?

  • Number FormatterでフォーマットされたJFormattedTextFieldを使用すると、DocumentListenerが正しいリスナーになります

  • 解析は必要ありません。出力に問題はありません。千単位の区切り文字、数字以外の文字の入力は許可されていません。

  • PaternでDocumentFilterを使用すると、数字以外の文字を削除してから、数字、小数点記号、負の歌を含むcontensをかなり保存して解析できます。

于 2012-10-07T10:19:06.657 に答える