0

jtextフィールドがあります

ユーザーが次のような数字を入力すると

123456789,10

jtextfieldに自動的に設定されます

123,456,789.10

次に、ユーザーがボタンをクリックすると、

System.out.print(the_same_number);

その結果

123456789.10

  • これを行う方法?
  • jtextfieldが入力番号とドット(。)およびコマ(、)のみを受け入れるようにするにはどうすればよいですか?

(この場合、フォーマットされたフィールドを使用する必要がありますか?)

ありがとう..

4

3 に答える 3

2

を使用しDocumentFilterて、テキストフィールドに入力される入力をフィルタリングする必要があります。

あなたが尋ねている質問の例を実際に持っているMDPの例をチェックしてください

于 2012-11-09T21:33:21.643 に答える
1

DocumentFilter@MadProgrammerによって提案されたように選択することができます。ただし、テキストフィールドとコンソールに印刷するときに異なる表示を行うという要件に取り組むことは困難です(追加の手動解析/フォーマットが必要になります)。

数字のみを受け入れるという要件と組み合わせると、JFormattedTextFieldを組み合わせて検討することを強くお勧めしますNumberFormat

  • JFormattedTextField、解析可能な入力のみを受け入れますNumberFormat(無効な入力を入力することはできますが、受け入れられることはありません)
  • 実際の値(JFormattedTextField#getValue)はDouble(正しいフォーマットを選択した場合)になるので、完全に印刷できます

この規格JFormattedTextFieldには使いやすさの問題があることに注意してください。少しグーグルすると、のさまざまな改良版を見つけることができますJFormattedTextField。たとえば、入力が無効場合の視覚的なフィードバックだけが欠けていることがわかった場合(たとえば、背景を赤にする)

于 2012-11-10T12:51:06.327 に答える
0

「jtextfieldが入力番号とドット(。)およびコマ(、)のみを受け入れるようにするにはどうすればよいですか?」

    @Override
    public void keyPressed(KeyEvent e) {
        int key = e.getKeyCode();
        if ((e.KeyChar >= 48 && e.KeyChar <= 57) || e.KeyChar == 46 || e.KeyChar == 44){
        }
        else{
        }
    }
于 2012-11-09T16:00:00.227 に答える