gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 03:02:19 25 4
gpt4 key购买 nike

有没有办法不断显示组合框弹出窗口?问题是关于日期选择器,但它是组合框的后代。我想调用组合框的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com