有没有办法不断显示组合框弹出窗口?问题是关于日期选择器,但它是组合框的后代。我想调用组合框的 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。
关于java - 如何在 JavaFX 8 中禁用隐藏组合框弹出窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35650600/