0

GUIフレームでユーザーからの入力を受け取り、行と列の.datファイルに保存するJavaプログラムを作成しました。望ましい結果が得られないため、問題はこの特定のコードにあります。ユーザーは、キーリスナーを使用して 20 から 30 までの数字のみを入力できる必要があります。入力は、この範囲外の数値、つまり 19 または 31 を受け入れてはなりません。Eclipse は「無効な文字定数」というエラーをスローしています。抜け道はありますか?

// input validation that restricts user to enter specific number range between 20 and 30

txDeposit.addKeyListener(new KeyAdapter() {
    public void keyTyped(KeyEvent ke) {
        char c = ke.getKeyChar();
        if(!(ke.getKeyChar() >= '20' && ke.getKeyChar() <= '30')) {
            getToolkit().beep();
            ke.consume();
        }
    }
});
4

3 に答える 3

0

JTextField を拡張する既製の Java コンポーネントを使用できます。長さ制限と正規表現チェックを提供します。そのコンポーネントを使用して、正規表現を追加して数を制限するだけで簡単にできます。

必要に応じて、簡単にコード (特に insertString() メソッド) を編集し、独自のカスタム チェックを追加できます。

ここでそれに関するブログ投稿をチェックできますhttps://subversivebytes.wordpress.com/2012/10/09/java-create-custom-regex-jtextfield/コードは完全であり、自由にコピー/貼り付けできます

それは、「車輪を再発明する理由」の 1 つにすぎません...

于 2013-05-21T07:39:44.377 に答える