Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Vaadin:带有表单[文本字段标题和所需指示器]的自定义布局_Java_Vaadin - Fatal编程技术网

Java Vaadin:带有表单[文本字段标题和所需指示器]的自定义布局

Java Vaadin:带有表单[文本字段标题和所需指示器]的自定义布局,java,vaadin,Java,Vaadin,我们正在开发一些表单,但在Vaadin表单中使用CustomLayout。我们在HTML中使用了字段标签,希望抑制TextField标题。还希望在文本字段的左侧设置必需属性 图形设计师和开发人员之间的任务是分离的,所以自定义布局对我们来说很方便,所以我们现在不能使用任何其他布局 目前,我的测试屏幕如下所示,[在表单中仅添加了两个用于自定义布局的字段] 正如您所看到的,“hello”标题位于文本框的顶部,我想将其完全删除。此标题仅用于说明,否则我将其设为空,但表中仍有空格。我还想使所需的指标与文本

我们正在开发一些表单,但在Vaadin表单中使用CustomLayout。我们在HTML中使用了字段标签,希望抑制TextField标题。还希望在文本字段的左侧设置必需属性

图形设计师和开发人员之间的任务是分离的,所以自定义布局对我们来说很方便,所以我们现在不能使用任何其他布局

目前,我的测试屏幕如下所示,[在表单中仅添加了两个用于自定义布局的字段] 正如您所看到的,“hello”标题位于文本框的顶部,我想将其完全删除。此标题仅用于说明,否则我将其设为空,但表中仍有空格。我还想使所需的指标与文本框对齐

我做了一个Form Field工厂,尝试了很多选择,但没有成功

如果需要任何特定的CSS更改,请明确告诉我如何添加,因为我是CSS新手。基于之前对论坛的讨论,我在我的文本栏中添加了以下风格,但没有成功

myLabel.setStyleName("inline");
以及使用CSS:

.inline, .inline div { display: inline; }
[我的案例我正在将其添加到TextField对象中}

“还希望在文本字段的左侧设置必需属性”如果希望将字段设置为必需,则应为其属性设置setRequired(true)

如果要手动处理表单中的所有元素位置,应执行以下操作:

public class YourFormextends Form{

private YourForm() {

        setImmediate(true);
        setValidationVisible(false);
        setValidationVisibleOnCommit(false);
        setValidationVisible(false);
        setValidationVisibleOnCommit(false);
        setWriteThrough(false);

        VerticalLayout formLayout = createFormLayout();
        setLayout(formLayout);

        setFormFieldFactory(yourFormFieldFactory());
    }

public static VerticalLayout createFormLayout() {
        final VerticalLayout layout = new VerticalLayout();
        layout.setMargin(true);

        final VerticalLayout formErrorLayout = new VerticalLayout();
        final VerticalLayout formFieldLayout = formFieldLayout();

        layout.addComponent(formErrorLayout, CREATE_FORM_ERROR_LAYOUT_INDEX);
        layout.addComponent(formFieldLayout, CREATE_FORM_FIELD_LAYOUT_INDEX);

        return layout;
    }

    private static VerticalLayout formFieldLayout() {
        VerticalLayout rootLayout = new VerticalLayout();
        rootLayout.setSpacing(true);
        rootLayout.setMargin(false, false, true, false);
        GridLayout layout = new GridLayout();

        layout.setRows(1);
        layout.setColumns(3);

        rootLayout.addComponent(layout);

        return rootLayout;

    }

private FormFieldFactory activityFormFieldFactory() {
    FormFieldFactory factory = new FormFieldFactory() {

        private static final long serialVersionUID = 1L;

        @SuppressWarnings("unchecked")
        @Override
        public Field createField(Item item, Object propertyId, Component uiContext) {
            String fieldName = (String) propertyId;
            if (fieldName.equals(FIELD_NAME_HELLO)) {

                if (EDIT_MODE) {
                    TextField textField = new TextField(FIELD_NAME_HELLO);
                    textField.setRequired(true);
                    return textField;
                }
            }
        }
    }

@Override
protected void attachField(Object propertyId, Field field) {
    String fieldName = (String) propertyId;

    VerticalLayout formFieldLayout = getFormFieldLayout();

        if (fieldName.equals(FIELD_NAME_HELLO)) {
            GridLayout layout = (GridLayout) formFieldLayout.getComponent(0);
            layout.addComponent(fieldCaption, 0, 0);
            layout.addComponent(field, 1, 0);
layout.addComponent(fieldDescription, 2, 0);
        }
}
}


}

你好,库拉姆,我也有同样的问题。你找到解决办法了吗?