JavaFX的TableView(和TreeTableView)赢得了我最近的“ JavaFX缺失功能”调查以及许多后续讨论中(尤其是苏黎世JavaFX Meetup小组的成员 )中提到最多的控件的价格。 )。 我想原因之一是一个简单的事实,即几乎每个应用程序都需要一个表视图。

TableView最需要的两个功能/改进是冻结行/列和更好的编辑支持。

冻结行/列

  • 冻结/锁定行–可以使一个或多个行停留在表格视图的顶部或底部。 尝试在列中显示值的总和时,通常需要此功能。
  • 冻结/锁定列–可以将一个或多个列保留在表格视图的左侧或右侧。 同样,显示行中值的总和或显示行的某种标题。 对于我的FlexGanttFX框架,我希望在左侧有一个列来显示行号(是的,例如在Excel中)。

我认为冻结列/行是TableView计划的一项功能,但由于时间和资源的限制,并没有将其纳入最终版本。 如果我没记错的话,实际上TableView代码库中有一些用于此目的的遗留代码/注释。

编辑支持

  • 只需开始输入新值即可编辑单元格值–当前,用户必须先双击一个单元格。
  • 流利的键盘导航,可通过TAB,SHIFT_TAB,ENTER和箭头键从一个单元格导航到另一个单元格。
  • 编辑值时的单元格验证。 如果不输入有效值或取消编辑,用户将不能离开单元格。

当前的编辑支持可能是使开发人员在使用TableView时最讨厌的一件事,因为他们知道用户希望得到更多。 我本人已经在两个项目上工作过,我们不得不修改TableView,以便它可以让用户直接编辑值。

要求的其他功能包括:

  • 单元格/行跨度–使单元格跨多个行和/或列的能力。
  • 过滤器用户界面–表格视图通常允许用户在每列中选择一个或多个过滤器。 然后,所有过滤器的集合确定可见行。 在JavaFX中,可以轻松地在模型中完成此操作(通过SortedList和FilteredList),但是开发人员希望直接在TableView内部(在标头内部)有内置控件。
  • 自动列大小调整–一种调整列宽以适应其内容的方法,以确保所有值的可读性。 该功能实际上是在TableView代码库中实现的。 当用户双击列标题的边缘时,它用于调整列的大小。 但是,此代码不是公开的。 我最近发布了一篇文章,展示了如何执行此操作 。

我认为上述所有功能都是可以通过良好的表控件实现的,但是我敢肯定,JavaFX团队本身不会在这方面取得任何进展。 我认为,从Oracle的角度来看,当前的表实现被认为“足够好”,因此我认为由第三方来提出一个好的替代方案(开源或商业)将取决于第三方。 我就如何实现自己的表视图控件进行了很多头脑风暴,但得出的结论是,它太大了,无法成为一个简单的附带项目。 这很不好,但这也意味着其他人有可能创造出一种商业产品并实际上从中赚钱。 因为就像我一开始所说:几乎所有应用程序都需要表视图。

下一个“缺少功能”博客将介绍性能和质量。

敬请关注!

PS :对于上面的某些功能,您可能需要尝试ControlsFX项目中的SpreadsheetView。

翻译自: https://www.javacodegeeks.com/2016/02/javafx-missing-features-survey-table-view.html

JavaFX缺少的功能调查:表视图相关推荐

  1. JavaFX缺少的功能调查:CSS

    在" 缺少的功能调查"系列的最后一篇文章中,我说过这篇文章是关于CSS和FXML中缺少的功能. 现在事实证明,调查提交的内容不包含任何有效的FXML问题. 因此,我将仅关注CSS. ...

  2. javafx css_JavaFX缺少的功能调查:CSS

    javafx css 在" 缺少的功能调查"系列的最后一篇文章中,我说过这篇文章是关于CSS和FXML中缺少的功能. 现在事实证明,调查提交的内容不包含任何有效的FXML问题. 因 ...

  3. javafx树视图加选框_JavaFX缺少的功能调查:表视图

    javafx树视图加选框 JavaFX的TableView(和TreeTableView)赢得了我最近的" JavaFX缺失功能"调查以及许多后续讨论中(尤其是我们苏黎世JavaF ...

  4. java表格中添加按钮_如何在JavaFX表视图中添加按钮

    我已经在谷歌和Stackoverflow上搜索了这个,我只是没有得到给定的例子 . 有人可以向我解释一下 . 我想在表视图的最后一列添加一个按钮,当它被单击时,它应该触发一个监听器并传递按钮行的对象 ...

  5. UI:UITableView表视图

    表视图 UITableView,iOS中最重要的视图,随处可⻅见. 表视图通常⽤用来管理⼀一组具有相同数据结构的数据. UITableView继承⾃自UIScrollView,所以可以滚动,表视图的每 ...

  6. ios 顶部tab滑动实现_iOS开发之多表视图滑动切换示例(仿头条客户端)

    好长时间没为大家带来iOS开发干货的东西了,今天给大家分享一个头条新闻客户端各个类别进行切换的一个示例.在Demo中对所需的组件进行的简单封装,在封装的组件中使用的是纯代码的形式,如果想要在项目中进行 ...

  7. Iphone表视图的简单操作

    1.创建一个Navigation-based-Application项目,这样Interface Builder中会自动生成一个Table View,然后将Search Bar拖放到表示图上,以我们要 ...

  8. IOS之导航控制器与表视图

    7.1 导航控制器 7.2 创建第一级控制器 7.3 第一个二级控制器 7.4 第一个三级控制器 7.5 第二个二级表控制器 7.6 第三个二级表控制器 7.7 第四个二级表控制器 7.8 第五个二级 ...

  9. oracle 多表视图更新

    1 前言 多表视图的定义:当视图的数据源只有一张数据表,则该视图为单表视图:当视图的数据源是多张数据表,则该视图为多表视图. 可更新视图的定义:在绝大多数人的概念中,视图是只读的,不允许修改.ORAC ...

最新文章

  1. JAVA Web项目中所出现错误及解决方式合集(不断更新中)
  2. 《OpenCV 4开发详解》图像的读取与显示
  3. 终于等到你:CYQ.Data V5系列 (ORM数据层)最新版本开源了
  4. 【PaddlePaddle系列】报错解决方法合集 (不定时更新)
  5. python中eof啥意思,什么是Python的完美对应“而不是EOF”
  6. Please install 'webpack-cli' in addition to webpack itself to use the CLI
  7. 为AI学术小白铺平道路,NeurIPS 2019推出New In ML2019特别会议
  8. 蔚来汽车股价跌跌不休 盘中触及上市以来最低点
  9. ssm框架requestmapping找不到_从MVC原理开始手敲一个MVC框架,带你体会当大神的乐趣...
  10. Pandas Index 更新和计算(Modifyingcomputations)
  11. hadoop 传感器数据_大数据时代Hadoop的本质,你有过认真了解吗?
  12. tensorflow 的 Session Exception
  13. Greenplu数据库的部署
  14. Django Restful API Class Based View
  15. 论文阅读:Bridging Knowledge Graph to Generate Scene Graph(ECCV20)
  16. 所有的I/O端口都是兼容CMOS和TTL 表示什么意思
  17. linux系统下的动态壁纸,动态壁纸给Linux发行版添加活力背景
  18. python AMQP 客户端连接
  19. android图片资源加密解密,[原创]cocos2d游戏图片资源解密
  20. U盘“请将磁盘插入U盘”,主控显示“chipYC2019”处理

热门文章

  1. Java集合从菜鸟到大神演变
  2. github详细搜索
  3. javaweb调用python算法_请教怎么用java远程调用python? 多谢
  4. linux虚拟机tomcat上部署web项目的常用命令
  5. jvm(3)-垃圾收集器与内存分配策略
  6. 动态资源Servlet接口
  7. camel apache_Apache Camel 3 –新增功能前10名
  8. jakarta ee_Jakarta EE的拟议命名空间
  9. red hat 4.1.2_安装Red Hat Container Development Kit 2.2版本
  10. 动态代码生成 静态代码生成_将速度提升到自己的个人代码生成器中