0

だから私は、そのうちの1つがIPアドレスである3つのテキストフィールドをチェックする必要があるボタンのバリデーターを作成しようとしています。したがって、基本的にユーザーは完全な IP アドレスを自分で入力する必要があります。

そのため、不要な構文エラーが発生しました。これは、テキストフィールドが原因であると確信しています。

テキストフィールドを文字列に変換してから検証を試みましたが、それは悪化しているようです

private class theValidator implements ActionListener{

    public void actionPerformed(ActionEvent e)
    {           
        String textIP = txfIP.getText();
        txfIP.setInputVerifier(new InputVerifier() {
            Pattern pat = Pattern.compile("\\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\."+
                    "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\." +
                    "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\." +
                    "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b");

            public boolean shouldYieldFocus(JComponent input) {
                boolean inputOK = verify(input);
                if (inputOK) {
                    return true;
                } 
                else {
                    Toolkit.getDefaultToolkit().beep();
                    return false;
                }
            }
            public boolean verify(JComponent input) {
                JTextField field = (JTextField) input;
                Matcher m = pat.matcher(field.getText());
                return m.matches();
            }
        });
}
}
4

2 に答える 2

0

Apache のような既存の IP バリデーターを使用することをお勧めします: https://commons.apache.org/proper/commons-validator/apidocs/org/apache/commons/validator/routines/InetAddressValidator.html

于 2013-10-31T15:08:16.747 に答える