加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

如何禁用节点而不在JavaFX中将其灰显?

发布时间:2020-12-15 05:13:58 所属栏目:Java 来源:网络整理
导读:我的问题是能够禁用节点,以便用户在打印时无法与其进行交互.但是,出于同样的原因,我需要整个节点(在这种情况下是一个GridPane)及其所有子节点(主要是按钮和标签)在打印正在进行时不能由用户进行交互. 当我编写setDisable时,它会将整个Node灰化,但我希望在禁
我的问题是能够禁用节点,以便用户在打印时无法与其进行交互.但是,出于同样的原因,我需要整个节点(在这种情况下是一个GridPane)及其所有子节点(主要是按钮和标签)在打印正在进行时不能由用户进行交互.

当我编写setDisable时,它会将整个Node灰化,但我希望在禁用时保留Node的原始颜色和状态.

有没有办法做到这一点?无论是通过disableProperty还是其他方式,对我来说并不特别重要.这里的关键是你不应该与Node交互.

提前致谢

解决方法

我找到了答案:

来自@awksp
“JavaFX中的所有节点都有一个setMouseTransparent()方法,详见此处,其中mouseTransparent属性为:

如果为true,则此节点(及其所有子节点)对鼠标事件完全透明.选择鼠标事件的目标时,将mouseTransparent设置为true的节点及其子树将不予考虑….“

然后我进一步使用了setFocusTraversable(false),这样你就无法通过其他方式聚焦来与Node交互

感谢@awksp的帮助:
https://stackoverflow.com/a/24164911/6197978

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读