- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
给定一个添加到 DoubleProperty 的监听器,是否可以像使用 Observable 列表那样将 DoubleProperty 更改的数量传递给监听器?
someDoubleProperty.addListener(e -> {
// System.out.println(e.change());
});
最佳答案
我假设 DoubleProperty
你是说 javafx.beans.property.DoubleProperty
.
而不是使用 InvalidationListener
使用 javafx.beans.value.ChangeListener
. ChangeListener
是这个方法的功能接口(interface):
void changed(ObservableValue<? extends T> observable, T oldValue, T newValue)
它为您提供旧值和新值以及 ObservableValue
这就是变化的来源。
自 DoubleProperty
是一个 ObservableValue
(它扩展了 Observable
)它有一个用于添加 ChangeListener
的重载方法: addListener(ChangeListener<? super T>)
.但是请注意,DoubleProperty
是一个 ObservableValue<Number>
这意味着 oldValue
的类型和 newValue
将是 Number
.
正如@Zephyr 在评论中指出的那样,我错过了您也在寻找两个值之间的差异这一事实。虽然这很简单,因为您可以访问旧值和新值(正如您在评论中提到的那样),但为了完整起见,我将在此处举一个示例/以便我完整地回答这个问题。
someDoubleProperty.addListener((observable, oldValue, newValue) -> {
double diff = newValue.doubleValue() - oldValue.doubleValue();
// Do something with "diff"...
});
关于java - 使用 listener 和 DoubleProperty 获取变化量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51032498/
我目前正在开发一个使用 JavaFX 播放视频的应用程序。我想将音量 slider 放置在边框 Pane 的右侧。目前,应用程序将调整大小以适应窗口的大小,该窗口将与我的音量 slider 重叠。 我
我最近试图将我的双重属性的范围限制为 (0.0 - 1.0)。超出此范围的更改不应有任何影响,或引发错误。 目前我有两种方式: 只读,并且只允许在访问器上进行更改: private ReadOnlyD
这个问题在这里已经有了答案: JavaFX UI Frozen when performing Task in new Thread (1 个回答) 5年前关闭。 我正在尝试以编程方式为 JavaFX
我在显示小数点后第二个 doubleProperty 时遇到问题。 粗略的布局如下所示: public static void main(String[] args) { private Ta
我创建了一个代表数字键盘的用户控件。我希望将各个按钮的宽度和高度实现为 DoubleProperty,以便稍后进行配置。 我遇到的问题是我无法将该属性绑定(bind)到 GridPane 列和行的 p
我有一个ObservableSet itemSet 包含 DoubleProperty prop1 对于任意数量的 Item 实例. 我想创建另一个DoubleProperty 总计将反射(refle
给定一个添加到 DoubleProperty 的监听器,是否可以像使用 Observable 列表那样将 DoubleProperty 更改的数量传递给监听器? someDoubleProperty.
我使用 JavaFX Text 对象,并将其绑定(bind)到进度指示器: 我希望它显示工作完成了多少百分比(%)。 代码: text.textProperty().bind(indicator.p
是否有任何内置函数可以在 DoubleProperty 之间创建双向绑定(bind)?和 ObjectProperty ? 对于单向绑定(bind)来说,这很容易: public void bindB
Description 我有一个Label,其文本绑定(bind)到ProgressBar ProgressProperty。然后我将进度条的值乘以 100 ,并且我希望进度条将进度条的值 * 100
我是一名优秀的程序员,十分优秀!