Java 当JTextField达到一定数量的字符时,它会移动到下一个字符
我正在制作一个礼品代码应用程序,我想知道是否有一种方法可以让你输入的文本字段在达到一定数量的字符时移动到下一个文本字段。因此,如果在我用4个字符填充第一个文本字段时,有4个文本字段彼此相邻,而不是按tab键,那么它将移动到下一个jtextfield,依此类推,直到它到达末尾,例如,使用Java 当JTextField达到一定数量的字符时,它会移动到下一个字符,java,swing,jtextfield,Java,Swing,Jtextfield,我正在制作一个礼品代码应用程序,我想知道是否有一种方法可以让你输入的文本字段在达到一定数量的字符时移动到下一个文本字段。因此,如果在我用4个字符填充第一个文本字段时,有4个文本字段彼此相邻,而不是按tab键,那么它将移动到下一个jtextfield,依此类推,直到它到达末尾,例如,使用DocumentListener可以很容易地实现您的基本要求 public class MoveFocusForwardHandler implements DocumentListener { priv
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();
}
}
}
}
这一点已被证明您的基本要求可以通过使用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();
}
}
}
}
您知道如何检测文本区域是否有4个字符吗?你知道如何以编程方式聚焦文本区域吗?然后你就可以做了。你能显示你的代码吗?不,我没有,你想要什么代码?全部是JTextField textField=新的JTextField(3);然后我将它添加到JPanel中。这里是2,我提出了一个非常糟糕的解决方案,但至少它是有效的。这个概念已经演示过了。你知道如何检测文本区域是否有4个字符吗?你知道如何以编程方式聚焦文本区域吗?然后你就可以做了。你能显示你的代码吗?不,我没有,你想要什么代码?全部是JTextField textField=新的JTextField(3);然后我将它添加到JPanel中。这里是2,我提出了一个非常糟糕的解决方案,但至少它是有效的。这个概念已经演示过了