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