0

JTextField に入力する文字数を制限しようとしています...そのために、次のようなクラスを作成しました。

    class JTextFieldLimiter extends PlainDocument  
    {  
        private int limit;  
        JTextFieldLimiter(int limit)  
        {  
            super();  
            this.limit= limit;  
        }  
        public void insertString(int offset, String str, AttributeSet attr) throws BadLocationException {  
        if (str == null)  
          return;  

        if ((getLength() + str.length()) <= limit) {  
          super.insertString(offset, str,  attr);  
        }  
      }
   }

これでうまくいくはずだと思ったのですが、コンパイラがエラーを表示しています。

cannot find symbol: method insertString(int,java.lang.String,javax.print.attribute.Attributeset)
location:class javax.swing.text.PlainDocument  
 super.insertString(offset,str,(AttributeSet) attr);  
      ^

コードの何が問題になっていますか?

4

3 に答える 3

2

間違った AttributeSet を使用しています。インポートを確認します。

そのはず :

javax.swing.text.AttributeSet

いいえ:

javax.print.attribute.Attributeset
于 2010-12-23T08:37:53.290 に答える
0

カスタム ドキュメントを作成する代わりに、DocumentFilter を使用することをお勧めします。次に、これを JTextField または JTextArea または JTextPane で使用できます。実際の例については、ドキュメント フィルターの作成方法に関する Swing チュートリアルのセクションを参照してください。

于 2010-12-23T16:37:30.890 に答える