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

packagewww;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;impor... 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 展开
 我来答
叶之所思
2011-12-10 · TA获得超过101个赞
知道小有建树答主
回答量:73
采纳率:0%
帮助的人:96.3万
展开全部
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;
}
}
机峻藤英华
2019-11-20 · TA获得超过1318个赞
知道小有建树答主
回答量:1770
采纳率:92%
帮助的人:10.3万
展开全部
正好我这两天在写JAVA程序~~
1、限制长度为5,只要这句代码:textField.length()==5
2、只能输入数字,可用正则表达式匹配:
textField.matches("[0-9]+")
//这个+号呢,表示输入的0--9可以是1个或多个!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
雍稷友妮娜
2020-04-18 · TA获得超过3749个赞
知道小有建树答主
回答量:3117
采纳率:24%
帮助的人:184万
展开全部
只知道怎么限制长度,不知道怎么限制数字
对于数字你可以写一段程序来判断。限制数字没有直接的方法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式