我的问题是能够禁用 Node
,这样用户就无法在我打印它时与其进行交互。但出于同样的原因,我需要整个 Node
(在本例中为 GridPane
)及其所有子节点(主要是按钮和标签)不能与用户,而打印正在进行中。
当我写 setDisable
时,它使整个 Node
变灰,但我想保留 Node
的原始颜色和状态> 当它被禁用时。
有没有办法做到这一点?通过 disableProperty
或其他方式,对我来说并不特别重要。这里的关键是您不应该能够与 Node
进行交互。
提前致谢
最佳答案
我找到了答案:
来自@awksp
“JavaFX 中的所有节点都有一个 setMouseTransparent()
方法,详见此处,其中 mouseTransparent 属性为:
如果为 true,则此节点(及其所有子节点)对鼠标事件完全透明。选择鼠标事件的目标时,mouseTransparent 设置为 true 的节点及其子树将不被考虑....
"
然后我进一步使用了 setFocusTraversable(false)
,这样您就无法通过其他方式聚焦节点来与节点交互
感谢@awksp 的帮助: https://stackoverflow.com/a/24164911/6197978
关于java - 如何禁用节点而不在 JavaFX 中将其灰显?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38326362/