你可以执行以下操作(从此处获取):
import java.awt.FlowLayout;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;class JTextFieldLimit extends Plaindocument { private int limit; JTextFieldLimit(int limit) { super(); this.limit = limit; } JTextFieldLimit(int limit, boolean upper) { super(); this.limit = limit; } public void insertString(int offset, String str, AttributeSet attr) throws BadLocationException { if (str == null) return; if ((getLength() + str.length()) <= limit) { super.insertString(offset, str, attr); } }}public class Main extends Jframe { JTextField textfield1; JLabel label1; public void init() { setLayout(new FlowLayout()); label1 = new JLabel("max 10 chars"); textfield1 = new JTextField(15); add(label1); add(textfield1); textfield1.setdocument(new JTextFieldLimit(10)); setSize(300,300); setVisible(true); }}编辑:看看这个以前的SO职位。你可以拦截按键事件,并根据文本字段中的当前字符数添加/忽略它们。



