java textfield 中如何设置文本长度

如题,比如设置textfield的长度只能输入4个字符。... 如题,比如设置textfield的长度只能输入4个字符。 展开
 我来答
百度网友12ee0fd
2015-08-08 · TA获得超过4.7万个赞
知道大有可为答主
回答量:1.1万
采纳率:66%
帮助的人:1954万
展开全部

限制输入文本的长度,可以定制一个Document:

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);
  }
}
ly19323
2009-02-09 · TA获得超过234个赞
知道答主
回答量:119
采纳率:0%
帮助的人:102万
展开全部
java的textField好像不能设置文本长度.我的解决方法是给textField加一个监听器,用户输入的时候就检验长度,输入多于4个字符就subString
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
daay1986
2009-02-10 · TA获得超过6018个赞
知道大有可为答主
回答量:2208
采纳率:0%
帮助的人:1473万
展开全部
在setText(String str)这里处理下就好了,字符串长度超过4就不让他调super的setText就好了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
千羽千寻online
2015-07-30 · TA获得超过645个赞
知道小有建树答主
回答量:735
采纳率:37%
帮助的人:181万
展开全部
maxlength 最大字节长度
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
指即天涯
2015-07-21 · TA获得超过655个赞
知道小有建树答主
回答量:1184
采纳率:44%
帮助的人:186万
展开全部
用size 属性设置长度
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式