在javafx中双向绑定ToggleGroup
|
想象一下,有一个定义鼠标模式的枚举: public enum MouseMode {
SELECTION,EDITING,DELETING }
想象一下,有一个由3个按钮组成的切换组: ToggleButton selection = new ToggleButton("Select");
ToggleButton editing = new ToggleButton("Edit");
ToggleButton deleting = new ToggleButton("Delete");
ToggleGroup mouseSelection = new ToggleGroup();
我希望一个字段MouseMode currentMode双向链接到toggle-group.每当设置切换时,相应地切换currentMode,但是如果某个外部进程改变currentMode(可能是按键),则切换组也会相应地进行调整. 我可以用2个监听器做到这一点,但我想知道是否有办法创建自定义双向映射. 解决方法我认为没有办法直接这样做.虽然是通用的Bindings.bindBidirectional(Property<S> property1,Property<T> property2,Function<S,T> mapping,Function<T,S> inverseMapping) 可能是API的一个很好的补充,即使在这种情况下也没有用,因为ToggleGroup的selectedProperty是只读的(因为选择需要在调用每个Toggle的setSelected(…)方法时处理,以及ToggleGroup的selectedProperty). 在这种情况下,使用几个听众是可行的方法. 最接近“自定义双向映射”的是 Bindings.bindBiDirectional(StringProperty stringProperty,ObjectProperty<T> otherProperty,StringConverter<T> converter) 方法.在你有(可写)ObjectProperty< S>的情况下和(可写的)ObjectProperty< T>理论上,您可以使用两个双向绑定和一个中间StringProperty将它们绑定在一起.在实践中,这几乎总是比仅使用两个侦听器更多的代码,并且效率也较低. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- java – 与Spring引导devtools相关的推土机映射异
- java – maven-tomcat7-plugin生成损坏的可执行J
- 如何使用Java 8时间API将两位数年份转换为全年
- 优化Java虚拟机总结(jvm调优)
- JNA UnsatisfiedLinkError – 当我将java.librar
- java获取服务器一些信息方法集合(访问路径之类的
- Spring Boot 读取静态资源文件的方法
- rx-java – RxSwift – .subscribe vs .subscrib
- java-ee – 在@MappedSuperclass中定义@UniqueCo
- java – 如何以编程方式将webservice发布到tomca
