java中textField输入字符类型,长度的限制

package www;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextField;public class shiyan { private JTextField textField; public shiyan(){ JFrame f=new JFrame(); f.getContentPane().setLayout(null); f.setSize(500, 328); final JLabel label = new JLabel(); label.setText("输入数字:"); label.setBounds(54, 93, 74, 33); f.getContentPane().add(label); textField = new JTextField(); textField.setBounds(161, 98, 170, 33); f.getContentPane().add(textField); f.setVisible(true); } public static void main(String[] args) { new shiyan(); } 这是代码,希望各位大虾补充下,限制只能输入数字,限制长度为5

import java.awt.Toolkit;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;

public class shiyan {
private JTextField textField;

public shiyan() {
JFrame f = new JFrame();
f.getContentPane().setLayout(null);
f.setSize(500, 328);
final JLabel label = new JLabel();
label.setText("输入数字:");
label.setBounds(54, 93, 74, 33);
f.getContentPane().add(label);
textField = new JTextField();
LimitedDocument limitDocument = new LimitedDocument(10);// 允许长度为10
limitDocument.setAllowChar("0123456789");// 只允许输入数字
textField.setDocument(limitDocument);
textField.setBounds(161, 98, 170, 33);
f.getContentPane().add(textField);
f.setVisible(true);
}

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

class LimitedDocument extends PlainDocument {
private static final long serialVersionUID = 1L;
private int maxLength = -1;// 允许的最大长度
private String allowCharAsString = null;// 允许的字符串格式(0123456789)

public LimitedDocument() {
super();
}

public LimitedDocument(int maxLength) {
super();
this.maxLength = maxLength;
}

public void insertString(int offset, String str, AttributeSet attrSet) throws BadLocationException {
if (str == null) {
return;
}
if (allowCharAsString != null && str.length() == 1) {
if (allowCharAsString.indexOf(str) == -1) {
return;// 不是所要求的字符格式,就直接返回,不进行下面的添加
}
}
char[] charVal = str.toCharArray();
String strOldValue = getText(0, getLength());
char[] tmp = strOldValue.toCharArray();
if (maxLength != -1 && (tmp.length + charVal.length > maxLength)) {
Toolkit.getDefaultToolkit().beep();// 发出一个警告声
return;// 长度大于指定的长度maxLength,也直接返回,不进行下面的添加
}
super.insertString(offset, str, attrSet);
}

public void setAllowChar(String str) {
allowCharAsString = str;
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-11-20
正好我这两天在写JAVA程序~~
1、限制长度为5,只要这句代码:textField.length()==5
2、只能输入数字,可用正则表达式匹配:
textField.matches("[0-9]+")
//这个+号呢,表示输入的0--9可以是1个或多个!
第2个回答  2020-04-18
只知道怎么限制长度,不知道怎么限制数字
对于数字你可以写一段程序来判断。限制数字没有直接的方法
相似回答