JAVA怎么限制JTextField的输入长度

JAVA怎么限制JTextField的输入长度``比如说我有4个JTextField并列在一起``而每个JTextField只能输入4个字符超过4个就自动TAB切换到下一... JAVA怎么限制JTextField的输入长度``比如说我有4个JTextField并列在一起``而每个JTextField只能输入4个字符超过4个就自动TAB切换到下一个JTextField```这个功能应该具体怎么实现``应该调用什么方法 展开
 我来答
敏杰软件
2012-02-10 · TA获得超过211个赞
知道小有建树答主
回答量:322
采纳率:0%
帮助的人:188万
展开全部
添加个addActionListener啊应该有个onchange事件什么的吧(具体什么的记不到了,太久不用这个了),每改变一个字符就会触发一次,后面的我就不说了吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友477fd7e
2015-09-13 · 超过21用户采纳过TA的回答
知道答主
回答量:67
采纳率:100%
帮助的人:35.2万
展开全部
new JTextField(30);这个30就是文本框最大的输入长度
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
你说的太对了丶我相信你丶真的
推荐于2017-05-24 · TA获得超过390个赞
知道小有建树答主
回答量:111
采纳率:0%
帮助的人:77.3万
展开全部
package com;

import java.awt.Dimension;
import java.awt.FlowLayout;
import java.util.ArrayList;
import java.util.List;

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

/**
*
* @author wgq
*
*/
public class ChanckText extends JFrame {
List<MyJTextField> textList = new ArrayList<MyJTextField>();

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

public ChanckText() {
MyJTextField text1 = new MyJTextField(1);
MyJTextField text2 = new MyJTextField(2);
MyJTextField text3 = new MyJTextField(3);
MyJTextField text4 = new MyJTextField(4);
this.getContentPane().setLayout(new FlowLayout());
this.getContentPane().add(text1);
this.getContentPane().add(text2);
this.getContentPane().add(text3);
this.getContentPane().add(text4);
this.setSize(new Dimension(600, 400));
this.setVisible(true);
textList.add(text1);// 把所有的文本框添加到集合中,方便设置选中
textList.add(text2);
textList.add(text3);
textList.add(text4);
}

class MyJTextField extends JTextField {
public int id = 0;

public MyJTextField(int id) {
this.id = id;
this.setDocument(new MyProtDocument(this));// 设置文档对象
this.setPreferredSize(new Dimension(100, 25));// 设置文本框大小
}
}

class MyProtDocument extends PlainDocument {
MyJTextField tx = null;

public MyProtDocument(MyJTextField tx) {
this.tx = tx;
}

private static final long serialVersionUID = 1L;

public void insertString(int offs, String str, AttributeSet a)
throws BadLocationException {
if (str == null) {
return;
}
if (tx.getText().length() >= 4) {// 判断字数
if (tx.id == 4) {
tx.id = 0;
}
textList.get(tx.id).requestFocus(true);// 设置文本框选中
return;
}
char[] upper = str.toCharArray();
super.insertString(offs, new String(upper), a);
}
}

}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式