Фильтр js-grid не рендерит

Вы можете получить всплывающее содержимое DatePicker из DatePickerSkin. См. Эту демонстрацию для реализации:

public class DatePickerPopupDemo extends Application {
    @Override
    public void start(Stage primaryStage) {
        try {
            BorderPane root = new BorderPane();
            Scene scene = new Scene(root, 400, 400);
            scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());

            DatePickerSkin datePickerSkin = new DatePickerSkin(new DatePicker(LocalDate.now()));
            Node popupContent = datePickerSkin.getPopupContent();

            root.setCenter(popupContent);

            primaryStage.setScene(scene);
            primaryStage.show();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        launch(args);
    }
}


Если верхняя панель не нужна, вы можете посмотреть ее и скрыть .

DatePickerSkin datePickerSkin = new DatePickerSkin(new DatePicker(LocalDate.now()));
Node popupContent = datePickerSkin.getPopupContent();

// force a css layout pass to ensure that lookup calls work
popupContent.applyCss();
popupContent.lookup(".month-year-pane").setVisible(false);

root.setCenter(popupContent);

Обновление:

Начиная с JDK 9 DatePickerSkin является частью открытого API и использует закрытая реализация com.sun.[...] больше не требуется. (См. JavaDoc )

Кроме того, , как указано в комментариях , чтобы получить выбранное значение, вам нужно получить доступ к DatePicker, из которого вы извлекли (например, сохраняя его как переменную).

DatePicker datePicker = new DatePicker(LocalDate.now());
DatePickerSkin datePickerSkin = new DatePickerSkin(datePicker);
Node popupContent = datePickerSkin.getPopupContent();
//[...]
LocalDate selectedDate = datePicker.getValue();

Вы также можете прослушать изменения значений, добавив ChangeListener к соответствующему свойству:

datePicker.valueProperty().addListener(new ChangeListener() {
    @Override
    public void changed(ObservableValue observable, LocalDate oldValue, LocalDate newValue) {
        System.out.println("New Value: " + newValue);
    }
});
//Or using neat lambda
datePicker.valueProperty().addListener((observable, oldValue, newValue) -> {
    System.out.println("New Value: " + newValue);
});

0
задан user1944491 15 January 2019 в 18:42
поделиться

1 ответ

О боже, после всего этого вот ответ: необходимо включить атрибут type в определение поля:

  {
    name: 'Account',
    title: 'Account',
    width: '10',
    type: 'text',
  },
  {
    name: 'Name',
    title: 'Name',
    width: '65',
    type: 'text',
  },
  {
    name: 'AXfer',
    title: 'ATeam',
    width: '10',
    type: 'text',
  },
  {
    name: 'BXfer',
    title: 'BGood',
    width: '10',
    type: 'text',
  }
0
ответ дан user1944491 15 January 2019 в 18:42
поделиться
Другие вопросы по тегам:

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