当前位置: 首页 > 知识库问答 >
问题:

JavaFX extract Calendar-从DatePicker弹出/仅显示弹出

施辉
2023-03-14

共有1个答案

汪深
2023-03-14

您可以从DatePickerSkin获取DatePicker的弹出内容。有关实现,请参阅此演示:

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);

更新:

DatePicker datePicker = new DatePicker(LocalDate.now());
DatePickerSkin datePickerSkin = new DatePickerSkin(datePicker);
Node popupContent = datePickerSkin.getPopupContent();
//[...]
LocalDate selectedDate = datePicker.getValue();
datePicker.valueProperty().addListener(new ChangeListener<LocalDate>() {
    @Override
    public void changed(ObservableValue<? extends LocalDate> 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);
});
 类似资料:
  • Since 9.9 showPopMenu 右上角显示弹出的下拉菜单,如果设置了icon那么每一个菜单项都要求有icon,要不都没有icon。 特别注意,请右上角为默认三个点的时候不要调用本接口,右上角为自定义图片或者文字的时候可以调用。 注意:tag是必选项 该API在9.9版本之后可以使用 使用方法 AlipayJSBridge.call('showPopMenu', { menus:[

  • 我想显示datepicker弹出窗口。我找到了一些例子,但我没有得到正确的理解。我有一个edittext,我希望当我单击edittext时,datepicker对话框应该弹出,在设置日期后,日期应该以DD/MM/YYYY格式显示在edittext中。请提供给我样本代码或良好的链接。

  • 问题内容: 这个问题已经有了答案,但是我仍然不确定它是如何工作的。 我在footer.php中使用以下HTML: 和以下Javascript: 一切都很好,但是我只想对每个用户显示一次弹出窗口(也许使用所有论坛帖子都使用的cookie内容),但是我不知道确切如何将其合并到上面的JS中。 我知道我将必须在此页脚中加载cookie JS: 但这就是我的全部理解,有人能告诉我添加了Cookie的东西后J

  • 我在我的react应用程序上使用react-dates^18.4.0,我注意到“open”上有一个奇怪的行为 当我单击时,会立即弹出,有时会从上到下缓慢打开。 我在storybook上进行了搜索,似乎这是datepicker组件的默认行为。http://airbnb.io/react-dates/?SelectedKind=DateRangePicker%20%28DRP%29&SelectedS

  • 我想删除一个DatePicker的组合框,而只显示该DatePicker的日历。 此处解释:JavaFX extract calendar-popup from DatePicker/only show popup ?

  • 我对弹出菜单有问题。我想要的是,当用户在jlist上单击鼠标右键时,会出现一个弹出菜单。我创建了一个类,在其中我创建了弹出菜单,一个扩展了mouselistener的类,以及另一个将鼠标侦听器添加到jlist的类。在扩展mouselistener的类中,我调用弹出菜单的类并显示它。问题是弹出菜单没有出现。 当我点击我得到的是: 在released javax中按released enter。摆动J