如何在java中实现限制文本框/域中输入字符长度
在java中建立文本框后,在其中输入字符都是无限制的,我查了api有使用setColumns(),但好象不是限制字符长度的,请问如何在文本框中限制输入字符长度(像15>=...
在java中建立文本框后,在其中输入字符都是无限制的,我查了api有
使用setColumns(),但好象不是限制字符长度的,请问如何在文本框中
限制输入字符长度(像15>=密码>=6位一样),当超过时便不可以再输入。请指点谢谢!! (要原创答案,这个问题在百度里提了,但答案非常不好) 展开
使用setColumns(),但好象不是限制字符长度的,请问如何在文本框中
限制输入字符长度(像15>=密码>=6位一样),当超过时便不可以再输入。请指点谢谢!! (要原创答案,这个问题在百度里提了,但答案非常不好) 展开
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()"/>光标离开时引用:
展开全部
使用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判断下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
JTextField text = new JTextField(填长度);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-05-31
展开全部
swing还是web
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询