以小见大,单元工厂中的精细容器引用传递控制

本文探讨了在JavaFX中如何精细控制单元格内的对象引用,特别是当单元格包含复杂布局和元素时。作者建议仅传递必要的对象到单元工厂,以简化管理和提高程序灵活性。通过实例展示了如何在单元工厂中处理用户信息,包括弹出模态窗口进行修改和上传图像,实现了ListView控件的高效用户管理。
摘要由CSDN通过智能技术生成

在所有的界面控制中,各个对象的相互关系相对比较容易掌握理解。但具体到单元格的控制中,相对来说就有一些细节我们要仔细思考。首先,单元格中的对象的功能在JavaFx不亚于一个窗体,它里面也可以重新布局各种容器、图表等元素,同时,它特殊的地方在于:所有的对像不是一次性创建的,根据官方文档的描述:

因为TreeView, ListView, TableView和其他这样的控件可以潜在地用于显示难以置信的大量数据,
* 所以为控件中的每个项目创建一个实际的Cell是不可行的。我们只用很少的cell来表示非常大的数据集。
* 每个细胞都被“回收”或重复使用。这就是我们说这些控件是虚拟化的意思。
* 每当平台确定需要创建新单元时,就会调用单元工厂。例如,也许你的ListView有1000万个项目。
* 制造所有的1000万个单元对象是非常昂贵的。因此,ListView皮肤实现可能只创建刚好适合视觉空间的单元格。
* 如果ListView被调整为更大,系统将决定它需要创建一些额外的单元格。在这种情况下,
* 它将调用cellFactory回调函数(如果提供的话)来创建应该使用的Cell实现。如果没有提供单元格工厂,
* 则将使用内置的默认实现。
* 单元工厂的实现不仅负责创建cell实例,还负责配置该cell,以便它对其状态的变化做出反应。

所以如果我们要控制某一个单元格中的个性化对象,若是从大的容器控件去引用,有时还是相当有难度的,有种人的世界和蚂蚁的世界那种两个世界

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值