DateTimeFieldコンポーネントでは、日付(年、月、日)と時(時、分、秒)の両方が表示されます。 今、私は日付を取得したくありません。どのようなアイデアだけを表示して時間を得ることができます(時:分:秒)?Vaadin 8でDateTimeFieldをカスタマイズする
1
A
答えて
1
TL; DR
Vaadin 8.1のように、唯一の時刻を表示するための組み込みの方法。
あなた自身で作成することができます。
詳細
既存DateTimeField
]()ウィジェットは日付と時刻プラスタイムゾーンの組み合わせでのみレガシーGregorianCalendar
クラスをサポートしています。したがって、時刻の値のみには役に立ちません。
残念ながら、Vaadin 8.1の時点で、バンドルフィールドウィジェットは、java.time.LocalTime
などのjava.timeタイプに対してまだ更新されていないようです。インテリジェントLocalTime
-savvyフィールドの欠如のための回避策として
、私はどちらかお勧め:
- はdate-time-fields Add-onを試してみてください。
アドオンは、Vaadinプロジェクトに追加できる拡張機能であり、Vaadin関連機能のナゲットを提供します。アドオンは、視覚的なウィジェット関連であってもよいし、非視覚的なバックエンド機能であってもよい。このようなビジュアルの場合は、ウィジェットセットを再作成するためにプロジェクトの再構築が必要な場合があります。おそらく、Mavenclean
とinstall
(このテクニックは様々なVaadinリリースで変更されているとは限りません)。 - あなた自身で作成してください。通常のテキストフィールドを使用します。ユーザ入力parsesを
LocalTime
オブジェクトとして検証するバリデータを作成します。 Vaadin固有のバリデーターまたは標準Bean Validationバリデーターを書くことができます。 How to add Validators in Vaadin 8を参照してください。ここで
例
は、あなた自身のLocalTime
-savvyフィールドを作成するためのいくつかの大まかなコードです。これは決して完全ではありませんが、正しい方向に向けるのに役立ちます。
final Label whenLabel = new Label("when?");
final TextField whenField = new TextField();
whenField.setCaption("When:");
whenField.setValueChangeMode(ValueChangeMode.BLUR);
whenField.addValueChangeListener(new HasValue.ValueChangeListener <String>()
{
static final long serialVersionUID =0L;
@Override
public void valueChange (HasValue.ValueChangeEvent <String> valueChangeEvent)
{
String input = whenField.getValue();
System.out.println("input: " + input);
try
{
// DateTimeFormatter f = DateTimeFormatter.ISO_LOCAL_TIME; // Constant ISO_LOCAL_TIME is for time-of-day in standard ISO 8601 format.
// DateTimeFormatter f = DateTimeFormatter.ofLocalizedTime(FormatStyle.SHORT).withLocale(Locale.CANADA_FRENCH); // Automatically localize.
DateTimeFormatter f = DateTimeFormatter.ofLocalizedTime(FormatStyle.SHORT).withLocale(Locale.US); // Automatically localize.
LocalTime localTime = LocalTime.parse(input , f);
String timeIso8601 = localTime.toString();
whenLabel.setValue(timeIso8601);
} catch (DateTimeParseException e)
{
whenLabel.setValue(e.getClass().getCanonicalName());
System.out.println("ERROR - failed to parse input: " + input);
}
}
});
関連する問題
- 1. JavaScriptComponentState in Vaadin 8
- 2. vaadin 8 + springカスタムウィジェットセット
- 3. Vaadin 8グリッドヘッダーを隠す
- 4. Vaadinチャートのドリルアップボタンをカスタマイズする
- 5. グリッドデータのリフレッシュ(Vaadin 8)
- 6. NoClassDefFoundError with Vaadin 8プッシュアンドスプリングブートバージョン1.5.1
- 7. Vaadin 8 History APIとSEO
- 8. Vaadin 8国際化i18n
- 9. Vaadin - 春ブーツのproductionModeカスタマイズされたサーブレット
- 10. テーブルセル変換へのVaadin beanプロパティのカスタマイズ
- 11. Vaadin 8フォームでTextFieldを検証する方法
- 12. Vaadin 8グリッド表示関連アイテム名
- 13. Vaadin 8グリッド選択の最初の行
- 14. Vaadin 8グリッドカラムタイプの入手方法は?
- 15. Vaadin 8 Treegridのアイテムをフィルタリングする方法は?
- 16. Vaadin 8のブラウザウィンドウのタイトルを変更する
- 17. Vaadin 8 ComboBox removeAllItemsの代替手段は何ですか?
- 18. vaadin 8のテキストフィールドとバインドする方法は?
- 19. Vaadin 8では、ブール値をグリッドのチェックボックスに変換する方法
- 20. がDateTimeField型
- 21. Django IntegrityError with DateTimeField
- 22. DjangoのDateTimeField型
- 23. Django - DetailTimeViewのDateTimeField
- 24. ジャンゴDateTimeField型()
- 25. wtforms datetimefield validation
- 26. Java、Vaadin 8、グリッドで遅延読み込み
- 27. Vaadin 7プロジェクトはバージョン8でロードされません
- 28. VaadinテーブルをVaadinグリッドに変換する
- 29. ジャンゴ - これでDateTimeField型
- 30. Vaadin 8 Gridでどのようにセルの枠線を削除しますか?