java - 如何在 JavaFX 8 中禁用隐藏组合框弹出窗口?

标签 java javafx combobox datepicker javafx-8

有没有办法不断显示组合框弹出窗口?问题是关于日期选择器,但它是组合框的后代。我想调用组合框的 show() 方法,然后不断显示它直到舞台关闭。 迄今为止最好的事情是

    showingProperty().addListener({ ov, old, newValue ->
        if (!newValue) this.show()
    })

它还可以,但是它会隐藏弹出窗口然后显示它,这很不方便。

最佳答案

糟糕的解决方案

将弹出内容从日期选择器皮肤中取出,并像任何其他节点一样使用它。请注意,日期选择器本身必须至少被渲染为场景的一部分才能初始化皮肤。可能有更聪明的方式来初始化皮肤。

final DatePicker datePicker = new DatePicker();
final StackPane root = new StackPane( datePicker );
final Scene scene = new Scene( root, 250, 200 );
primaryStage.setScene( scene );
primaryStage.show();

datePicker.setVisible( false );
datePicker.setManaged( false );

final com.sun.javafx.scene.control.skin.DatePickerSkin skin = (com.sun.javafx.scene.control.skin.DatePickerSkin) datePicker.getSkin();
root.getChildren().add( skin.getPopupContent() );

完整example code在 github 上。

好的解决方案

使用专为您的目的而设计的控件,例如 CalendarPicker来自 JFXtras。

enter image description here

http://jfxtras.org/

关于java - 如何在 JavaFX 8 中禁用隐藏组合框弹出窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35650600/

相关文章:

JavaFX 2 媒体兼容性?

combobox - Extjs4 网格编辑器远程组合框 displayValue

python - 如何进行 ttk.Combobox 回调

java - JFrame 装饰有 Windows 边框,即使 Look&Feel 设置为其他方式

java - 指向java中等效指针的指针

java - Spring Boot 示例文件未找到错误

java - 无法使用 @FXML 注释访问父类(super class) Controller 中的元素

JavaFX ScrollPane - 如何使用一个滚动条来滚动 2 个 ScrollPanes?

VBA (Visual Basic) : ComboBox (Form Control) - Object doesn't support this property or method

java - Android Facebook 邀请