を含むビューがありFormLayout
ます。
このレイアウトに 2 つの列が含まれるようにします。1 つはキャプション、もう 1 つは入力フィールドです。私のフィールドはすべて必須としてマークされているため、すべてのキャプションの右側に小さな赤いインジケーターが表示されます (入力フィールドにはインジケーターが表示されません)。
私の問題は、入力の 1 つが日付と時刻であることです。これら 2 つのフィールドを 1 行に 1 つのキャプションを付けて表示する必要があります。
両方を HorizontalLayout に配置し、レイアウトにキャプションを設定することで、キャプションを付けて 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) の写真です。
これらのフィールドにカスタムバリデーターを設定し、値が空かどうかを確認し、キャプションにスタイルを設定することで、必要なものを取得できましたが、それを行うためのより「標準的な」方法があるかどうか疑問に思います。