ホームページ >Java >&#&チュートリアル >Java で JTextField が数値入力のみを受け入れるように制限するにはどうすればよいですか?

Java で JTextField が数値入力のみを受け入れるように制限するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-22 19:05:16817ブラウズ

How Can I Restrict a JTextField to Accept Only Numeric Input in Java?

JTextField で数値のみを受け入れる

JFormattedTextField クラスを使用すると、JTextField が数値のみを受け入れるように制限できます。このクラスは、Format オブジェクトを使用したさまざまなデータ型の検証をサポートします。

数値入力に JFormattedTextField を使用する

JFormattedTextField は、データを検証し、視覚的なフィードバックを提供するための柔軟なソリューションを提供します。これを数値入力に使用する方法は次のとおりです。

NumberFormat integerNumberInstance = NumberFormat.getIntegerInstance();
ImprovedFormattedTextField integerFormattedTextField = new ImprovedFormattedTextField(integerNumberInstance, 100);

この例では:

  • integerNumberInstance は、整数値専用の NumberFormat オブジェクトです。 JFormattedTextField を拡張し、拡張された機能を提供するカスタム JTextField
完全な解析のためのカスタム フォーマッタ

完全な数値のみが受け入れられるようにするには、ParseAllFormat クラスをフォーマットのデコレータとして使用できます。 object:

このラッパー形式は、部分的な数値が入力された場合に、値は拒否されます。
final Format format = new ParseAllFormat(integerNumberInstance);

改善されたFormattedTextFieldの追加機能

改善されたFormattedTextFieldクラスは、いくつかの追加機能を提供します。

    ビジュアルフィードバック:
  • 背景色と前景色の変更を提供します有効な入力と無効な入力を示します。
  • キャレット位置:
  • ユーザー エクスペリエンスを維持するために、値の入力後にキャレットの位置を修正します。
  • キー バインド オーバーライド:
  • ENTER キーの消費などの不必要なアクションを禁止しますキーストローク。
使用例

数値入力機能を GUI に組み込むには:

このセットアップは数値テキストを初期化します。フィールドの動作が改善されました。ボタンには値が表示され、入力が有効な場合にのみ有効になります。
JPanel panel = new JPanel(new BorderLayout());
panel.add(integerFormattedTextField, BorderLayout.WEST);

JButton button = new JButton(new AbstractAction() {
    {
        integerFormattedTextField.addPropertyChangeListener("editValid", event -> setEnabled((Boolean) event.getNewValue()));
        putValue(Action.NAME, "Show Current Value");
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        JOptionPane.showMessageDialog(null, "The current value is [" + integerFormattedTextField.getValue() + "]");
    }
});

以上がJava で JTextField が数値入力のみを受け入れるように制限するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。