付费的网站是指,展览馆网站建设方案书,顺德网站制作案例教程,网站备案多个域名javafx html5即使在整个NSA监视的这段时间#xff0c;实现JavaFX控件时也要牢记可观察性#xff0c;这仍然是一个好主意。 与Swing相比#xff0c;这在JavaFX中很容易实现。 旧时光 来自Swing#xff0c;我习惯于花费大量精力和时间来使自定义控件变得可观察。 通常需要添… javafx html5 即使在整个NSA监视的这段时间实现JavaFX控件时也要牢记可观察性这仍然是一个好主意。 与Swing相比这在JavaFX中很容易实现。 旧时光 来自Swing我习惯于花费大量精力和时间来使自定义控件变得可观察。 通常需要添加方法来添加和删除某种类型的侦听器。 此侦听器类型是一个新接口该接口的单个方法接受了一个新的事件对象。 要发送此事件对象控件必须在我的自定义控件中“触发”它因此我最终编写了fireXYZ方法。 要做很多工作只是为了让人们知道控件状态的某些方面已经改变。 新时代 在JavaFX中通过使用属性和可观察的集合可以更轻松地实现可观察性。 在FlexGanttFX框架中其控件的几乎每个属性都是属性并且所有集合都是通过FXCollections类创建的该类返回可观察的集合。 这很有意义因为每个控件的属性总数定义了它的状态并且此状态需要是可观察的以便应用程序的其他部分尤其是其他控件可以对状态更改做出React。 样板代码 使用属性的不利之处在于您最终编写了许多样板代码但仍然比Swing少。 对于布尔型属性它将看起来像这样 public final BooleanProperty showStuff new SimpleBooleanProperty(this, showStuff, true);public final BooleanProperty showStuffProperty() {return showStuff;
}public final boolean isShowStuff() {return showStuff.get();
}public final void setShowStuff(boolean show) {showStuff.set(show);
} 是的您应该完全遵循此编码约定。 对于名为xxx的属性请提供名为xxxProperty的属性访问器方法名为setXXX的设置程序和名为getXXX的获取程序。 这是在JavaFX中使用它的方式您应该坚持使用它。 使用集合时通常至少会得到以下代码 private final ObservableListString names FXCollections.observableArrayList();public final ObservableListString getNames() {return names;
} 在JavaFX核心控件中集合通常存储在一个属性中以便可以用新集合替换整个集合。 到目前为止我尚未在控件中真正看到对此的强烈要求并且不这样做就意味着我不必为此情况编写属性侦听器。 听众 现在我们的控件属性是属性我们可以通过向它们添加侦听器使用lambda表达式来轻松地对状态更改做出React。 myControl.showStuffProperty().addListener(it - showStuffChanged());myControl.getNames().addListener((Observable observable) - namesChanged());结论 在设计自己的自定义控件时通过属性和可观察的集合在控件类中公开其状态。 这样每个人都将能够以与整个JavaFX框架一致的方式观察控件的状态并使其他开发人员能够无缝地将其控件/应用程序与您的控件集成在一起。 翻译自: https://www.javacodegeeks.com/2014/07/javafx-tip-5-be-observable.htmljavafx html5