Предел JTextField вклад в максимальной длиной

Этот совет Swing показывает, как ограничить JTextField вклад в максимальной длины.


import javax.swing.text.*;



public class JTextFieldLimit extends PlainDocument {

    private int limit;

    // optional uppercase conversion

    private boolean toUppercase = false;

    

    JTextFieldLimit(int limit) {

        super();

        this.limit = limit;

    }

    

    JTextFieldLimit(int limit, boolean upper) {

        super();

        this.limit = limit;

        toUppercase = upper;

    }

    

    public void insertString

            (int offset, String  str, AttributeSet attr)

            throws BadLocationException {

        if (str == nullreturn;

        

        if ((getLength() + str.length()) <= limit) {

            if (toUppercasestr = str.toUpperCase();

            super.insertString(offset, str, attr);

        }

    }

}



import java.awt.*;

import javax.swing.*;



public class tswing extends JApplet{

    JTextField textfield1;

    JLabel label1;

    

    public void init() {

        getContentPane().setLayout(new FlowLayout());

        //

        label1 = new JLabel("max 10 chars");

        textfield1 = new JTextField(15);

        getContentPane().add(label1);

        getContentPane().add(textfield1);

        textfield1.setDocument

                (new JTextFieldLimit(10));

    }

}

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>