gpt4 book ai didi

Java TextField 日期自动填充

转载 作者:行者123 更新时间:2023-11-30 06:45:07 25 4
gpt4 key购买 nike

好吧,我得到了这样的东西:

public void menu() {

final Form menu = new Form("Menu");
menu.setLayout(new BoxLayout(BoxLayout.Y_AXIS));

Button confirm = new Button("Confirm");

Container creditCardContainer = new Container(new GridLayout(1, 3));

final TextField num1 = new TextField(3);
final TextField num2 = new TextField(3);
final TextField num3 = new TextField(3);

num1.setConstraint(TextArea.NUMERIC);
num2.setConstraint(TextArea.NUMERIC);
num3.setConstraint(TextArea.NUMERIC);

creditCardContainer.addComponent(num1);
creditCardContainer.addComponent(num2);
creditCardContainer.addComponent(num3);

Validator v = new Validator();

v.addConstraint(num1, new LengthConstraint(2));
v.addConstraint(num2, new LengthConstraint(2));
v.addConstraint(num3, new LengthConstraint(4));

automoveToNext(num1, num2);
automoveToNext(num2, num3);

menu.add(creditCardContainer);
menu.add(confirm);
v.addSubmitButtons(confirm);
menu.show();

confirm.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ev)
{
String getdate = num1.getText() + "/" + num2.getText() + "/" + num3.getText();
System.out.println(getdate);
new StateMachine("/theme");
}
});
}
}

private void automoveToNext(final TextField current, final TextField next) {
current.addDataChangedListener(new DataChangedListener() {
public void dataChanged(int type, int index) {
if(current.getText().length() == 3) {
Display.getInstance().stopEditing(current);
String val = current.getText();
current.setText(val.substring(0, 2));
next.setText(val.substring(2));
Display.getInstance().editString(next, 3, current.getConstraint(), next.getText());
}
}
});
}

请注意,addDataChangeListener 已弃用,因此我不得不将其更改为 addDataChangedListener

我认为我的代码有问题,因为当我在 Codename One Simulator 中运行它时,它仍然允许我输入字母,即使使用以下代码也是如此:

num1.setConstraint(TextArea.NUMERIC);
num2.setConstraint(TextArea.NUMERIC);
num3.setConstraint(TextArea.NUMERIC);

此外,当我输入完日期后,我的确认按钮没有按应有的方式突出显示。请有人帮助我修复它。

Obs:我的日期是 dd/MM/yyyy

最佳答案

我们不支持直接字段屏蔽,因为 native 文本字段输入处理得不是很好。您有 2 个我能想到的选项:

  • 使用 Date Picker 启动一个很棒的设备原生 UI 来选择日期。请注意,它在模拟器中表现不佳,但在 Android/iOS 上看起来不错。

  • 使用 3 个文本字段并在您键入时自动移至下一个,就像我们为这个信用卡输入示例所做的那样:http://www.codenameone.com/blog/validation-regex-masking.html

关于Java TextField 日期自动填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49583534/

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