java textfield 中如何设置文本长度

如题,比如设置textfield的长度只能输入4个字符。

第1个回答  2009-02-18
这个问题比较难啊,得重写JTextField。建议你从头开始学swing。推荐书籍:《java swing》
先给你个我写例子你自己研究吧。我也不知道改怎么解释!
import javax.swing.*;
import javax.swing.text.*

public class ppoo extends JTextField{

public ppoo(int cols) {
super(cols);
}
public ppoo() {
super();
}

protected Document createDefaultModel() {
return new Limit();
}

static class Limit extends PlainDocument {

@Override
public void insertString(int offs, String str, AttributeSet a)
throws BadLocationException {

if (str == null) {
return;
}
System.out.println(offs);
if(offs>=4) { //这是关键,如果偏移量大于4则让传入的字符串为' '就可以了
str="";
}
super.insertString(offs, str, a);
}
}
}
class Main
{
public static void main(String[] args)
{
ppoo p=new ppoo();
JFrame j=new JFrame();
j.setLayout(FlowLayout());
p.setSize(150,100);
j.add(p);
j.setSize(200,200);
j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
j.setVisible(true);
}
}

运行:
javac ppoo.java
java Main

楼下的方法不太好,容易引起BUG,而且效率会降低本回答被提问者采纳
相似回答