以这段代码为例,我编写了以下代码来跟踪滑块的变化并将结果放入“speed: Int”变量中:
speedSlider.valueProperty.addListener(new ChangeListener[Number] {
@Override
def changed(o: ObservableValue[_ <: Number], oldVal: Number, newVal: Number) {
speed = newVal.intValue()
}
})
但这会导致错误:
wrong number of type arguments for scalafx.beans.value.ObservableValue, should be 2
def changed(o: ObservableValue[_ <: Number], oldVal: Number, newVal: Number) {
如果我更改ObservableValue[_ <: Number]
为此ObservableValue[_ <: Number, _ <: Number]
错误消失但另一个出现:
object creation impossible, since method changed in trait ChangeListener of type (x$1: javafx.beans.value.ObservableValue[_ <: Number], x$2: Number, x$3: Number)Unit is not defined
speedSlider.valueProperty.addListener(new ChangeListener[Number] {
^
有任何想法吗?
更新:我已经通过ObservableValue
用javafx.beans.value.ObservableValue
. 它现在编译并且没有抛出任何错误,但仍然无法工作 - 代码永远不会被调用。