stage.initModality(Modality.APPLICATION_MODAL)
stage.initStyle(StageStyle.TRANSPARENT)//这是让弹出窗口透明,如果不设置stage透明,stackpane再怎么设置也没用。
FXML:
<StackPane
style="-fx-border-radius:8px-fx-opacity: 0.4-fx-background-color: black "
xmlns="Java SE | Oracle Technology Network" xmlns:fx="Java SE | Oracle Technology Network"
>
fxml里用css样式 -fx-opacity: 0.4控制stackpane半透明
以上方法stage显示后是半透明遮罩效果,但是我想要在stackpane中间一块区域里放输入对话框,结果输入部分还是半透明的效果,还未能解决
追加----换了下实现方式,就是在primaryStage布局中用stackpane,在stackpane的children中添加一个半透明的pane,<Pane fx:id="main_mask" style="-fx-border-radius:8px-fx-opacity: 0.4-fx-background-color: black " visible="false" />,默认不显示;在显示弹出的stage时,再通过代码设置main_mask显示,在关闭弹出stage时,隐藏main_mask,这样能达到想要的效果了,但是这样的缺点是不通用,组件不独立,想办法改进中