让我们考虑一个示例代码:
SimpleIntegerProperty simpleIntegerProperty = new SimpleIntegerProperty(0);
simpleIntegerProperty.addListener((observable, oldValue, newValue) -> {
// execution code when the event is fired.
});
当我使用setvalue()
方法设置新值时,如果oldValue和newValue相同,则不会激发事件。只有当他们不同的时候。
一个例子:
listview
与包含一些“元素”的ObservableList
绑定。过程
是不同的类。它处理一些元素,还包含SimpleIntegerPorperty
-CurrentlyChosenElementIndex
来指示当前选择的元素的索引。当执行当前元素时,我希望listview
显示这一点。现在,在这个过程中,GUI被阻止,并且在listview
上选择当前元素,同时继续执行。过程结束后,应用程序将CurrentlyChosenElementIndex
重置为零,这是一个带有我有我的问题的索引。当过程开始时,第一个元素没有被选中,因为应用程序setvalue()
与前面的元素相同。
有什么办法可以改变吗?
仅使用SimpleIntegerProperty
类不能做到这一点。但是您可以扩展类并添加所需的功能。创建一个类,如下所示
public class NotifySetIntegerProperty extends SimpleIntegerProperty {
private OnSetValueListener valueListener;
public NotifySetIntegerProperty(int initialValue) {
super(initialValue);
}
@Override
public void set(int newValue) {
super.set(newValue);
if(valueListener!= null) {
valueListener.onValueSet(newValue);
}
}
public void setValueListener(OnSetValueListener valueListener) {
this.valueListener = valueListener;
}
public interface OnSetValueListener {
void onValueSet(int value);
}
}
然后可以使用它,并在调用setvalue
或set
方法时得到通知
NotifySetIntegerProperty property = new NotifySetIntegerProperty(0);
property.setValueListener(new NotifySetIntegerProperty.OnSetValueListener() {
@Override
public void onValueSet(int value) {
System.out.println(value);
}
});
property.setValue(1);
property.setValue(0);
将输出
1
0
跳过值无效时: 问题:和是,因此无法正确重写。 问题:如何获得不执行检查的类型? 这个问题和这个问题有关。
我做错什么了吗? 我所看到的例子是使用这种方法而不使用fxml,我必须使用注释来定义处理程序吗?在FXML中,我应该把场景的“onAction”放在哪里?
DatabaseHelper->getOffers()
有一个行为我找不到相关的留档。让我们假设以下代码。它应该在控制台中显示使用foo.bar属性配置的内容: 如果您在application.yml()中设置了以下属性,它将被正确地拾取并在控制台中显示“fromapplication.yml”,没什么花哨的 现在,如果您使用完全相同的代码,但这次您想使用命令行参数覆盖application.yml中定义的属性,并将--设置为命令行arg(请注意,这次
监听事件 事件处理是在节点(cc.Node)中完成的。对于组件,可以通过访问节点 this.node 来注册和监听事件。监听事件可以通过 this.node.on() 函数来注册,方法如下: cc.Class({ extends: cc.Component, properties: { }, onLoad: function () { this.node.on('mou
问题内容: 我想对窗体的大小调整事件(或其他任何事件)执行一些功能。 但是如何检测JavaFX中表单的大小调整事件? 问题答案: 你可以听的变化及的: 注意: 要侦听宽度和高度的变化,可以非常简单地使用同一侦听器: