gpt4 book ai didi

java - 使用文档监听器限制文本字段中的字符

转载 作者:行者123 更新时间:2023-11-30 09:31:42 25 4
gpt4 key购买 nike

如何使用 DocumentListener 限制在 JTextField 中输入的字符数?

假设我想最多输入 30 个字符。之后不能输入任何字符。我使用以下代码:

public class TextBox extends JTextField{
public TextBox()
{
super();
init();
}

private void init()
{
TextBoxListener textListener = new TextBoxListener();
getDocument().addDocumentListener(textListener);
}
private class TextBoxListener implements DocumentListener
{
public TextBoxListener()
{
// TODO Auto-generated constructor stub
}

@Override
public void insertUpdate(DocumentEvent e)
{
//TODO
}

@Override
public void removeUpdate(DocumentEvent e)
{
//TODO
}

@Override
public void changedUpdate(DocumentEvent e)
{
//TODO
}
}
}

最佳答案

您需要使用 DocumentFilter以此目的。在应用时,它会过滤文档。

有点像...

public class SizeFilter extends DocumentFilter {

private int maxCharacters;

public SizeFilter(int maxChars) {
maxCharacters = maxChars;
}

public void insertString(FilterBypass fb, int offs, String str, AttributeSet a)
throws BadLocationException {

if ((fb.getDocument().getLength() + str.length()) <= maxCharacters)
super.insertString(fb, offs, str, a);
else
Toolkit.getDefaultToolkit().beep();
}

public void replace(FilterBypass fb, int offs, int length, String str, AttributeSet a)
throws BadLocationException {

if ((fb.getDocument().getLength() + str.length()
- length) <= maxCharacters)
super.replace(fb, offs, length, str, a);
else
Toolkit.getDefaultToolkit().beep();
}
}

创建到 MDP's Weblog

关于java - 使用文档监听器限制文本字段中的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12812844/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com