如何在java中实现限制文本框/域中输入字符长度

在java中建立文本框后,在其中输入字符都是无限制的,我查了api有使用setColumns(),但好象不是限制字符长度的,请问如何在文本框中限制输入字符长度(像15>=... 在java中建立文本框后,在其中输入字符都是无限制的,我查了api有
使用setColumns(),但好象不是限制字符长度的,请问如何在文本框中
限制输入字符长度(像15>=密码>=6位一样),当超过时便不可以再输入。请指点谢谢!! (要原创答案,这个问题在百度里提了,但答案非常不好)
展开
 我来答
匿名用户
2013-05-31
展开全部
直接限制文本框的长度就可以啦比如密码:<input name="password" type="password" size="20" maxlength="15" />size是文本框的长度,maxlength是输入最多字符数的长度 判断的话用javascript在</head>下面写入<script>function ispassword(){ var password = document.all("password").value; if(password.length <6){ alert("密码必须大于6位"); return false; } if(password.length >16){ alert("密码必须小于15位"); return false; } return true}</script><input name="password" type="password" size="20" maxlength="15" onblue="ispassword()"/>光标离开时引用:
百度网友12ee0fd
推荐于2017-09-28 · TA获得超过4.7万个赞
知道大有可为答主
回答量:1.1万
采纳率:66%
帮助的人:1964万
展开全部

使用DocumentFilter

import java.awt.EventQueue;
import java.awt.GridBagLayout;
import java.awt.Toolkit;
import javax.print.attribute.AttributeSet;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.text.AbstractDocument;
import javax.swing.text.BadLocationException;
import javax.swing.text.DocumentFilter;
import javax.swing.text.DocumentFilter.FilterBypass;

public class FilterTest {

    public static void main(String[] args) {
        new FilterTest();
    }

    public FilterTest() {
        EventQueue.invokeLater(new Runnable() {

            @Override
            public void run() {
                try {
                    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
                } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
                }

                JTextField field = new JTextField(10);
                ((AbstractDocument)field.getDocument()).setDocumentFilter(new SizeFilter(5));

                JFrame frame = new JFrame("Testing");
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setLayout(new GridBagLayout());
                frame.add(field);
                frame.pack();
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);
            }

        });
    }

    public class SizeFilter extends DocumentFilter {

        private int maxCharacters;

        public SizeFilter(int maxChars) {
            maxCharacters = maxChars;
        }

        public void insertString(FilterBypass fb, int offs, String str, AttributeSet a)
                        throws BadLocationException {

            if ((fb.getDocument().getLength() + str.length()) <= maxCharacters) {
                super.insertString(fb, offs, str, a);
            } else {
                Toolkit.getDefaultToolkit().beep();
            }
        }

        public void replace(FilterBypass fb, int offs, int length, String str, AttributeSet a)
                        throws BadLocationException {

            if ((fb.getDocument().getLength() + str.length()
                            - length) <= maxCharacters) {
                super.replace(fb, offs, length, str, a);
            } else {
                Toolkit.getDefaultToolkit().beep();
            }
        }
    }

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-05-31
展开全部
文本框里有个属性maxlength,设置最大的输入值长度,想设置最小值可用JS判断下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
神机天下
2015-07-16 · TA获得超过175个赞
知道小有建树答主
回答量:279
采纳率:0%
帮助的人:182万
展开全部
JTextField text = new JTextField(填长度);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-05-31
展开全部
swing还是web
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式