Как изменить формат ввода datepicker с 13/7/2018 по 13-07-2018 в tornadofx?

Пример экрана заставки:

public class MainActivity extends Activity {
    private ImageView splashImageView;
    boolean splashloading = false;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        splashImageView = new ImageView(this);
        splashImageView.setScaleType(ScaleType.FIT_XY);
        splashImageView.setImageResource(R.drawable.ic_launcher);
        setContentView(splashImageView);
        splashloading = true;
        Handler h = new Handler();
        h.postDelayed(new Runnable() {
            public void run() {
                splashloading = false;
                setContentView(R.layout.activity_main);
            }

        }, 3000);

    }

}
-1
задан S.Hillol 13 July 2018 в 18:13
поделиться

1 ответ

Tornadofx datepicker() в основном использует класс java DatePicker, расположенный в javafx.scene.control.DatePicker.java . DatePicker продолжается от ComboBoxBase<java.time.LocalDate>, поэтому значение всегда является типом LocalDate.

Чтобы изменить формат, существует метод, определенный в классе DatePicker с именем setConverter(), который принимает аргумент, набранный StringConverter<LocalDate>. Это можно сделать с помощью метода LocalDateStringConverter(), определенного в javafx.util.converter.LocalDateStringConverter.java . Это в основном принимает два аргумента, чтобы получить funtional, и оба являются типом DateTimeFormatter, первый аргумент для форматирования и второй для синтаксического анализа. Здесь для достижения моей цели я видел, что для получения желаемого результата достаточно одного форматирования.

DateTimeFormatter - это класс, определенный в java.time.format.DateTimeFormatter.java , который является форматированием для печати и разбора объектов даты и времени. ofPattern() метод, определенный в нем, принимает строковый шаблон, подобный "dd-MM-yyyy", который здесь является моим желаемым. Таким образом, мы можем сделать val dateFormatter = DateTimeFormatter.ofPattern("dd-MM-yyyy")

Теперь мы можем применить setConverter(LocalDateStringConverter(dateFormatter, dateFormatter)), который является вызовом метода java get set ", или мы можем использовать« синтетические свойства Котлина «как converter = LocalDateStringConverter(dateFormatter, dateFormatter), что предпочтительнее.

Дается рабочий фрагмент:

datepicker() {
                 ...

                 val pattern = "dd-MM-yyyy"
                 val dateFormatter = DateTimeFormatter.ofPattern(pattern)
                 converter = LocalDateStringConverter(dateFormatter, dateFormatter)
              }

Выходной снимок:

1
ответ дан S.Hillol 17 August 2018 в 12:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: