FXML:使用BuilderFactory的自定义组件
如果没有,那就更复杂了。 您将需要为加载器提供一个Builder和一个BuilderFactory。 例如,在FXExperience Tools中,使用了一个不错的ColorPicker控件,该控件需要将Color传递给它的构造函数。 因此,在FXML中,我们想编写如下代码:
<?import com.fxexperience.javafx.scene.control.colorpicker.ColorPicker?><!-- ... --><ColorPicker fx:id="colorPicker" id="colorPicker" color="GREEN" />
现在我们需要创建一个BuilderFactory和一个Builder:
import com.fxexperience.javafx.scene.control.colorpicker.ColorPicker;
import javafx.fxml.JavaFXBuilderFactory;
import javafx.scene.paint.Color;
import javafx.util.Builder;
import javafx.util.BuilderFactory;/**** @author eppleton*/
public class ColorPickerBuilderFactory implements BuilderFactory {public static class ColorPickerBuilder implements Builder<ColorPicker> {private Color color = Color.WHITE;private String id="colorPicker";public String getId() {return id;}public void setId(String id) {this.id = id;}public Color getColor() {return color;}public void setColor(Color color) {this.color = color;}@Overridepublic ColorPicker build() {ColorPicker picker = new ColorPicker(color);picker.setId(id);return picker;}}private JavaFXBuilderFactory defaultBuilderFactory = new JavaFXBuilderFactory();@Overridepublic Builder<?> getBuilder(Class<?> type) {return (type == ColorPicker.class) ? new ColorPickerBuilder() : defaultBuilderFactory.getBuilder(type);}
}
最后,在加载FXML时,您需要将工厂传递给加载器:
(Parent) FXMLLoader.load(TestTool.class.getResource("GradientEditorControl.fxml"), null,new ColorPickerBuilderFactory())
就是这样,如果我也可以使SceneBuilder理解这一点,那就太好了。
参考: Eppleton博客上的JCG合作伙伴 Toni Epple 使用BuilderFactory将自定义组件添加到FXML 。
翻译自: https://www.javacodegeeks.com/2012/04/fxml-custom-components-using.html
FXML:使用BuilderFactory的自定义组件相关推荐
- java 属性自定义配置,将自定义FXML属性设置为自定义javafx组件的参数
我创建了自定义组件TableBlock . 它由Label和TableView组成 . 例如,TableView可以有1到1000行 . 行数由FXML文件中的参数"rowsFromPref ...
- 【说人话】真正意义上讲清楚了如何用$emit()在Vue.js的自定义组件中实现v-model=“”双向绑定
子组件sg-component.vue代码 <template><div class="sg-component"><button @click=&q ...
- vue自定义组件 → 场馆预约の小时范围控件【手到擒来】
组件pages/components/sg-hour-range.vue <template><ul><liv-for="(item, $index) in h ...
- 微信小程序自定义轮播图滚动样式 自定义组件轮播图的实现
效果图: 实现代码: wxml <view class="card card_b"><swiper autoplay="{{true}}" i ...
- 微信小程序自定义组件之Picker组件
微信小程序开发交流qq群 173683895 承接微信小程序开发.扫码加微信. 需求: 通过JS条件判断,满足条件就弹出Picker给用户选择一个数组里面的数据. 有些朋友可能会有疑问: 1 ...
- 【一步步学小程序】3. 使用自定义组件(component)
上一节创建了一个包含多个课程数据的列表.这一节我们用自定义组件(component),来优化列表页面,即如图,我们把每个课程单元格封装为组件. 使用组件的好处: 自定义组件可以在不同的页面中重复使用 ...
- java requiredstringvalidator_如何访问自定义组件中的Validator.required
我需要一些帮助 . 我正在尝试创建一个包装下拉值的自定义组件,并根据是否需要显示/隐藏默认的--Select--选项 . (我想稍后将其他自定义逻辑应用于此组件) 如何通过父级的被动形式设置我的自定义 ...
- php自定义控件,小程序自定义组件的实现方法(代码)
本篇文章给大家带来的内容是关于小程序自定义组件的实现方法(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. File:threecolgrid.js// components/t ...
- Angular系列学习二:基本的组件说明、自定义组件和部分细节说明
作者:心叶 时间:2018-07-24 16:41 基本说明 组件是Angular中非常重要的一个东西,是拥有模板的指令,是构成Angular应用的基础和核心,被用来包装特定的功能,应用程序的有序运行 ...
最新文章
- TLS回调函数(1)
- oracle激活锁定用户,oracle 锁用户,oracle解除用户锁定
- python导入模块有几种方式、各有什么特点_Python导入模块的几种姿势
- oc73--NSArray使用
- Ubuntu 15.10 默认壁纸?
- javascript特效:会随着鼠标而动的眼睛
- linux系统添加中文输入法
- ICT通信运营企业的重建之服务升级(三)----如何打造ICT服务满意度
- 计算机二级试题aoa,浙江省高校计算机二级AOA考试excel试题及解析
- 计算机网络有哪三种地址,IP地址的分类有哪几种
- 麻省理工十亿美元计算机学院,麻省理工学院宣布10亿美元成立新计算机学院 | 芥末堆...
- 计算机音乐我还是曾经那个少年,我还是曾经的那个少年什么歌曲
- 前端HTML、CSS学习完整笔记(中下篇)
- 软工专硕考研_你可能需要了解--2018年北京大学软微软件工程专硕考研 经验分享...
- pytorch优化器详解:SGD
- Mysql跨库跨表复制数据
- 最简单的商家管理系统(小白)
- 基于FPGA的Bubble 游戏开发
- ARM芯片的时钟系统详解(S5PV210芯片)
- (算法)求数组中数字组合(可多值组合)相加最接近目标数的组合(可能多个)
热门文章
- exchanger_如何通过示例在Java中使用Exchanger
- java初学者指南_Java代理初学者指南
- synology smb_用于在Synology NAS上测试Spring Boot Web应用程序的JUnit模拟文件
- slf4j 记录日志文件_教程:正确的SLF4J日志记录用法以及如何检查它
- spring3.0异步_在Spring 4.2中更简单地处理异步事务绑定事件
- 基于netty的微服务网关_基于Rx-netty和Karyon2的云就绪微服务
- java8 camel_WildFly 8的Camel子系统集成了Java EE –入门
- r 数据框选子集_在带有组合框的值列表的下拉列表中显示显示属性的子集
- maven 打包编译_您是否真的想加快Maven的编译/打包速度? 那么takari生命周期插件就是答案。...
- 内置对象和内置函数_内置假对象