如何将 ColorPicker 值属性绑定到 ScalaFX 中的 ScalaFX ObjectProperty?

Posted

技术标签:

【中文标题】如何将 ColorPicker 值属性绑定到 ScalaFX 中的 ScalaFX ObjectProperty?【英文标题】:How do you bind the ColorPicker value property to a ScalaFX ObjectProperty in ScalaFX? 【发布时间】:2018-11-26 15:37:46 【问题描述】:

我似乎无法理解将 ColorPicker 值属性绑定到 ScalaFX 中的 ObjectProperty 的正确方法。这是我到目前为止所做的:

private val colorProp = new ObjectProperty[Color](this, "test", Color.White)

// Create color picker
val cp: ColorPicker = new ColorPicker(Color.White) 
    prefWidth = Prop.pickerWidth


colorProp <==> cp.value

但是,我在此处收到此类型错误:

[error]   (v: javafx.beans.property.Property[scalafx.scene.paint.Color])Unit <and>
[error]   (v: scalafx.beans.property.Property[scalafx.scene.paint.Color,scalafx.scene.paint.Color])Unit
[error]  cannot be applied to (scalafx.beans.property.ObjectProperty[javafx.scene.paint.Color])
[error]         colorProp <==> cp.value

我已经能够使 StringProperty 之类的东西正常工作,但是一旦我尝试使用 ObjectProperty,就会出现这个问题。任何帮助都会很棒!

【问题讨论】:

【参考方案1】:

结果证明我需要使用 JavaFX 颜色而不是 ScalaFX 颜色。这对我来说仍然很奇怪,但它有效!不过,任何进一步的解释都会很棒。

private val colorProp = new ObjectProperty[javafx.scene.paint.Color](this, "test", Color.White)

【讨论】:

为了在 ScalaFX 包装器和 JavaFX 类实例之间进行隐式转换,您需要在每个源文件的顶部有 import scalafx.Includes._ 我实际上已经导入了这个;但是,通过绑定 ObjectProperty 对象,编译器似乎相当挑剔......

以上是关于如何将 ColorPicker 值属性绑定到 ScalaFX 中的 ScalaFX ObjectProperty?的主要内容,如果未能解决你的问题,请参考以下文章

使用Colorpicker更改可观察数组中对象的属性

如何将值绑定到类属性?

Jquery:如何根据属性值将按键事件绑定到输入类型“数字”[重复]

如何将 ARGB 值绑定到组合框项中的矩形填充属性?

如何将控件的 BackColor(或其他属性)绑定到存储在 DataSource 中的字符串值?

如何在 javaFX 中将颜色从 ColorPicker 转换为 String 值