Java Vaadin:loginForm更改字段的位置';标题

Java Vaadin:loginForm更改字段的位置';标题,java,css,vaadin,vaadin7,Java,Css,Vaadin,Vaadin7,我使用vaadin的LoginForm组件在vaadin中构建了一个登录名。标题字段的位置有问题。我想将标题的位置更改为字段左侧 我的登录表单组件: private class MyLoginForm extends com.vaadin.ui.LoginForm { @Override protected TextField createUsernameField() { return usernameField; }

我使用vaadin的LoginForm组件在vaadin中构建了一个登录名。标题字段的位置有问题。我想将标题的位置更改为字段左侧

我的登录表单组件:

private class MyLoginForm extends com.vaadin.ui.LoginForm {

        @Override
        protected TextField createUsernameField() {
            return usernameField;
        }

        @Override
        protected PasswordField createPasswordField() {
            return passwordField;
        }

        @Override
        protected Button createLoginButton() {
            return loginButton;
        }
    }
我的登录面板:

private final Button loginButton = new Button("Login");
private final TextField usernameTextField = new TextField("Benutzername");
private final PasswordField passwordField = new PasswordField("Passwort");

private void initLayout() {
    Label textLabel = new Label("...", ContentMode.HTML);
    loginButton.setEnabled(false);

    final FormLayout formLayout = new FormLayout();
    formLayout.setMargin(true);
    formLayout.addStyleName("outlined");
    formLayout.addComponents(usernameTextField, passwordField, loginButton);
    formLayout.setComponentAlignment(loginButton, Alignment.BOTTOM_RIGHT);
    formLayout.setWidth("20em");
    formLayout.setHeight("10em");

    MyLoginForm myLoginForm = new MyLoginForm();
    myLoginForm.setContent(formLayout);
    addComponents(textLabel, myLoginForm);
    setComponentAlignment(myLoginForm, Alignment.TOP_CENTER);
}
如果要实现自定义布局,则需要覆盖的状态的文档。我不确定
setContent
是否以同样的方式工作

所有主要浏览器的自动完成和自动填充的登录表单。您可以从该类派生并使用传递给该方法的文本字段和登录按钮实现构建布局的方法。提供的组件经过特殊处理,以便与密码管理器配合使用

这表明以下实现(我没有测试它):

更新:以下是在父布局中初始化
MyLoginForm
的示例代码:

MyLoginForm myLoginForm = new MyLoginForm();
addComponents(textLabel, myLoginForm);
setComponentAlignment(myLoginForm, Alignment.TOP_CENTER);

LoginForm
在连接到父组件时调用
createContent
。因此,您不需要调用
setContent

您是否尝试过
setComponentAlignment(myLoginForm,Alignment.MIDDLE_LEFT)我没有帮忙me@emoleumassi据我所知,您不需要显式调用
createContent
setContent
。覆盖
createContent
就足够了,组件将处理其余部分。另外,你可以在StackExchange上。
MyLoginForm myLoginForm = new MyLoginForm();
addComponents(textLabel, myLoginForm);
setComponentAlignment(myLoginForm, Alignment.TOP_CENTER);