首页 > 解决方案 > FormLayout:2 个字段的 1 个标题

问题描述

我有一个包含FormLayout.

我希望此布局包含 2 列:一列带有标题,第二列带有输入字段。我的字段都标记为必填项,因此所有标题都在右侧显示红色小指示器(输入字段上没有指示器)。

我的问题是我的输入之一是日期和时间。我必须在一行上显示这两个字段,并带有一个标题。

通过将这两个组件放入 Horizo​​ntalLayout 并在布局上设置标题,我可以轻松地将 2 个组件与标题并排设置。但这不是在标题上而是在每个输入字段上设置所需的指示符。

FormLayout form = new FormLayout();
HorizontalLayout blocDateTime = new HorizontalLayout();

PopupDateField dateField = new PopupDateField();
TextField timeField =  new TextField();
dateField.setRequired(true);
timeField.setRequired(true);
blocDateTime.addComponent(dateField);
blocDateTime.addComponent(timeField);
blocDateTime.setCaption("caption.dateTime");

form.addComponent(blocDateTime);

这是我得到的 (A) 与我想要的 (B) 的对比:

在此处输入图像描述

我可以通过在这些字段上设置自定义验证器、检查它们的值是否为空并在标题上设置样式来获得我想要的东西,但我想知道是否有更“标准”的方式来做到这一点。

标签: javavaadinvaadin6

解决方案


由于您只需要一个必需的指示符(红色星号),这表明您希望每行只有一个字段。

这意味着您应该创建一个将 PopupDateField 和 TextField 合二为一的 CustomField。


推荐阅读