对于非常大的滚动JavaFX窗格,什么是一个很好的解决方案?
问题描述:
我期待做一个即时通讯工具,并给它一个花哨的,现代风格的消息窗格(每个消息默认在圆角泡沫中,由用户定制)。但是,如果一个对话变得很长,或者用户在历史记录中回滚得太远,我不希望它消耗内存。对于非常大的滚动JavaFX窗格,什么是一个很好的解决方案?
是否存在一个现有的(内置或开源的)JavaFX组件,它允许大量内容被绘制到缓冲区并且只在需要时才放在屏幕上,但仍然保持传统的滚动桌面GUI ?
答
使用ListView。
ListView是一个虚拟化控件,它只使用cell factory模式为当前可见的项目创建GUI节点。
Oracle提供了一个tutorial for customizing the cells in a ListView。