JavaFX缺少的功能调查:表视图

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/354039.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

快速幂矩阵快速幂

快速幂 题目链接:https://www.luogu.org/problemnew/show/P1226 快速幂用了二分的思想,即将\(a^{b}\)的指数b不断分解成二进制的形式,然后相乘累加起来,就是用\(a^{b/2}a^{b/2}\)去求\(a{^b}\)。 例如:\(a^{11}a^{(2^02^12^3)}\)…

前端项目里常见的十种报错及其解决办法

错误一:Uncaught TypeError: Cannot set property onclick of nullat operate.js:86图片.png原因:当js文件放在head里面时,如果绑定了onclick事件,就会出现这样的错误,是因为W3School的写法是浏览器先加载完按钮节点才…

监控oracle数据io,Prometheus监控Oracle数据库

背景本文简单介绍下,Prometheus如何通过exporters监控Oracle数据库,以及应该注意哪些指标。oracledb_exporteroracledb_exporter是一个连接到Oracle数据库并生成Prometheus metrics的应用程序,设置展示下如何安装和设置oracledb_exporter&…

默认HotSpot最大直接内存大小

在我以前的博客文章热点选项中的Java 8改进的文档 ,我写的误解围绕热点JVM非标准的默认设置选项 -XX:MaxDirectMemorySize 。 在本文中,我介绍了一种确定HotSpot JVM中“默认”最大直接内存大小的简单方法。 Java启动器的Java 8文档针对-XX:MaxDirectMe…

window 下 Atom 侧边栏字体大小设置

在 File 处找到 Settings 点击找到 Themes 点击找到 your stylesheet 点击在 .tree-view 处设置即可, (按照 css 样式来写即可保存生效)。转载于:https://www.cnblogs.com/zhourongcode/p/8521317.html

php workman 多线程,workerman如何多线程

Workerman有一个依赖pthreads扩展的MT多线程版本,但是由于pthreads扩展还不够稳定,所以这个Workerman多线程版本已经不再维护。 (推荐学习: workerman教程)workerman\mqtt 是一个基于workerman的异步mqtt 客户端库,可用于接收或者…

python面向对象封装

封装是指将功能模块化,比如,我们写了一个求和函数就是封装,函数使用者不需要了解函数内部是如何实现求和的,只需要调用我们写好的函数就行了。把很多数据封装到一个对象中,把固定功能的代码封装到一个代码块&#xff0…

Java嵌入oracle,Java插入Oracle Spatial空间数据

Java读取地理信息数据文件,并将其存入Oracle数据库。package file;import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.io.IOException;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.Res…

js Object的属性 Configurable,Enumerable,Writable,Value,Getter,Setter

对象的数据属性 Configurable,Enumerable,Writable,Value var person {} Object.defineProperty(person,name,{configurable:false,//能否使用delete、能否需改属性特性、或能否修改访问器属性、,false为不可重新定义,默认值为true enumerable:false,//…

SpringBoot AutoConfiguration魔术如何工作?

在我以前的文章中, 为什么选择SpringBoot? 我们已经研究了如何创建SpringBoot应用程序。 但是您可能会也可能不会了解幕后发生的事情。 您可能想了解SpringBoot自动配置背后的魔力。 但是在此之前,您应该了解Spring的Conditional功能&#x…

linux常用网络命令详解,linux网络命令详解(鸟哥)

[rootlinux ~]# tcpdump [-nn] [-i 介面] [-w 儲存檔名] [-c 次數] [-Ae][-qX] [-r 檔案] [所欲擷取的資料內容]參數:-nn:直接以 IP 及 port number 顯示,而非主機名與服務名稱-i :後面接要『監聽』的網路介面,例如 et…

Bzoj2694/Bzoj4659:莫比乌斯反演

Bzoj2694/Bzoj4659:莫比乌斯反演先上题面:首先看到这数据范围显然是反演了,然而第三个限制条件十分不可做。于是我们暂且无视他,大不了补集转化算完再减是吧。于是我们有:这里我们定义:于是这个东西我们可以nlogn筛的说。也就是说,我们求出f的…

linux系统嵌入式编译环境,Ubuntu 12.04嵌入式交叉编译环境arm-linux-gcc搭建过程图解...

Linux版本:Ubuntu 12.04 内核版本:Linux 3.5.0 交叉编译器版本:arm-linux-gcc-4.4.3 交叉编译器下载 见这篇文章http://www.linuxidc.com/Linux/2011-05/35906.htm安装前的絮叨首先简单介绍一下,所谓的搭建交叉编译环境&#xff0…

JUnit 5 –下一代JUnit的初步了解

2月初, JUnit 5(又名JUnit Lambda)团队发布了一个alpha版本。 由于JUnit 4是我工具箱中使用最频繁的项目之一,因此我认为值得一看下一个主要版本。 我试用了最新版本,并记下了我在这里发现值得注意的更改。 安装JUni…

Geany——Python配置

Geany是一个很不错的编辑器,操作很简单,这里记录一下Geany的入手设置(在下是一个Python程序猿,就以Python为例): 1:新建:选择 下拉菜单中的 main.py ,然后就能生成Pyth…

linux权限drwx,linux权限基础知识详解

祥哥今天整理一下Linux系统中的权限到底是什么?什么是775?什么又是777?664又代表了什么?1.查看权限可以使用ls -l命令ls -l我们以root文件夹为例来说明:drwx------.2 root rootd:这个代表是目录,也就是文件…

cargo maven_用于集成测试的Maven Cargo插件

cargo maven在项目生命周期中,非常普遍的需求是设置集成测试。 幸运的是,Maven在默认构建生命周期的以下阶段(来自Maven 文档 )具有对这一确切方案的内置支持: 集成前测试 : 执行集成测试之前所需的操作。…

linux菜单系统,Linux修改grub菜单

1. 保留上一次 grub 菜单选项1.1 问题每次开机时,大部分 Linux 发行版的 grub 菜单都是定位在首选项位置(即当前系统选项位置)。这就导致如果我们电脑安装了多个系统,那么每次开机进入其他系统都要重新选择 grub 菜单选项。而我们一般都是一段时间固定使…

zookeeper zoo.cfg配置文件

一、zookeeper的配置文件 zoo.cfg 配置文件是我们安装zookeeper的时候复制 重命名出来的文件命令: cp zoo_smaple.cfg zoo.cfgzkServer.sh 获取执行进入zookeeper 查看配置文件cd /myapp/zookeeper/conf执行命令 查看配置文件信息命令:vim zoo.cfg这是…

与Spring和Maven签订合约优先SOAP服务

1.简介 在本教程中,我们将学习使用JAX-WS,Spring和Maven实施合同优先的SOAP服务应用程序。 这是使用合同优先还是代码优先方法的更多设计决定。 在开发基于SOAP的Web服务应用程序时使用应用合同优先的方法最显着的好处是,可以在对合同进行必…