从一个选项卡切换到另一个选项卡时无法保存值 java GWT

Can't save value when switching from one tab to another java GWT

我有这个 login/registration 应用程序。注册部分由两部分组成。 (带有 2 个选项卡的 TabPanel)。第一个选项卡检查电子邮件,如果有效,则解锁第二个选项卡。第二个选项卡是实际注册表所在的位置。

我想使用第一个选项卡中的电子邮件作为第二个选项卡中的电子邮件,因此用户只能使用该电子邮件注册,因此无法编辑。 但问题是电子邮件在第二个选项卡中不可见。为什么会这样?

// variable declaration
private static String email;

// constructor
public RegisterViewImpl() {

    Widget tabBar = createRegistrationForm();
    tabPanel.add(tabBar);

    initWidget(tabPanel);
}


private static Widget createRegistrationForm() {

    TabPanel tabPanel = new TabPanel();

    // Create the e-mail tab
    Widget emailCheckerWidget = createEmailChecker();
    tabPanel.add(emailCheckerWidget, RegistrationFormConstants.CHECK_EMAIL_TAB);

    // Create the Personal Information Tab
    Widget personalInformationWidget = createPersonalInformationWidget();
    tabPanel.add(personalInformationWidget, RegistrationFormConstants.DETAILS_TAB);

...
}

private static Widget createEmailChecker() {

...

submitButton.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            // this is how I save my email
            email = emailBox.getText();
            checkIfEmailExists(email);
            emailBox.setText(null);
        }
    });
...
}




private static Widget createPersonalInformationWidget() {

...

// E-Mail Address
Label emailAddress = new Label("E-Mail Address");
final TextBox emailBox = new TextBox();
// this is how I want ot set it
emailBox.setText(email);
emailBox.setEnabled(false);
emailBox.setStyleName("fixed-input");

...
}

您在用户输入他或她的电子邮件之前创建表单。因此,您的表格不会显示它。 emailBox.setText(email); 应在用户单击提交按钮后调用。