当我输入TextField 7字符时,光标自动移动到下一个TextField。但在我的代码中,我的光标没有进入nextField。 (我知道我不能使用addKeyListener,所以试图用的DocumentListener此代码)Java:光标中的错误自动从一个TextField移动到其他
lbltext1 = new JLabel("Text1");
panel.add(lbltext1, "cell 0 1,alignx trailing");
final int maxSize =7 ;
for (int i = 0; i < 1; i++) {
final JTextField txtText1 = new JTextField();
NavigationFilter filter = new NavigationFilter() {
@Override
public void setDot(FilterBypass fb, int dot, Bias bias) {
if (dot >= maxSize) {
fb.setDot(0, bias);
txtText1.transferFocus();
return;
}
fb.setDot(dot, bias);
}
@Override
public void moveDot(FilterBypass fb, int dot, Bias bias) {
if (dot >= maxSize) {
fb.setDot(0, bias);
txtText1.transferFocus();
return;
}
fb.moveDot(dot, bias);
}
};
txtText1.addFocusListener(new FocusAdapter() {
@Override
public void focusLost(FocusEvent arg0) {
if (txtText1.getText().equals("")) {
txtDate.setText("");
} else {
SwingWorker<?, ?> job = new UIQuery();
job.execute();
}
}
});
txtText1.setNavigationFilter(filter);
((AbstractDocument) txtText1.getDocument()).setDocumentFilter(new DocumentSizeFilter(maxSize));
panel.add(txtText1, "cell 1 1,growx");
txtText1.setColumns(10);
}
JLabel lblText2 = new JLabel("Production Date");
panel.add(lblText2, "cell 0 2,alignx trailing");
txtText2 = new JTextField();
panel.add(txtText2, "flowx,cell 1 2,growx");
txtText2.setColumns(10);
txtText2.addFocusListener(new TextBoxGainedFocusEventSinglePreview());
txtText2.getDocument().addDocumentListener(new TextBoxDataChangedEventSinglePreview());
请告知我应该如何修改它。 感谢
当字段有7个字符或用户输入'7'时,您想要传送焦点吗? – MadProgrammer
@MadProgrammer,用户在textField上输入7个字符后.. – JavaIssues