当JTextField达到一定数量的字符时,它会移动到下一个字符

时间:2016-04-10 02:49:54

标签: java swing jtextfield

我正在制作一个礼品代码应用程序,我想知道当你达到一定数量的字符时,是否有办法让你输入的TextField移动到下一个TextField。因此,当我用4个字符填充第一个字符而不是点击标签时,彼此相邻有4个文本字段,它会移动到下一个jtextfield,依此类推,直到它到达结尾

1 个答案:

答案 0 :(得分:2)

使用DocumentListener可以轻松实现您基本上要求的内容,例如......

public class MoveFocusForwardHandler implements DocumentListener {

    private int maxLength;

    public MoveFocusForwardHandler(int maxLength) {
        this.maxLength = maxLength;
    }

    public int getMaxLength() {
        return maxLength;
    }

    @Override
    public void insertUpdate(DocumentEvent e) {
        documentChanged(e);
    }

    @Override
    public void changedUpdate(DocumentEvent e) {
        documentChanged(e);
    }

    @Override
    public void removeUpdate(DocumentEvent e) {
        documentChanged(e);
    }

    protected void documentChanged(DocumentEvent e) {
        if (getMaxLength() > 0) {
            if (e.getDocument().getLength() >= getMaxLength()) {
                KeyboardFocusManager.getCurrentKeyboardFocusManager().focusNextComponent();
            }
        }
    }

}

演示here