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

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

javafx树视图加选框

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

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

相关文章

_用WSL,MobaXterm,Cmder配置linux开发环境

离不开Windows的理由很多,作为后端开发需要使用linux的情况也很多,双系统总归是不方便,而且linux下的GUI体验也没用Win 10好. 如果使用虚拟机,那么文件交换和网络等各种问题也需要解决,对系统的内存要求也更高一些.微软为了让更多的开发人员留在Win10上面,开发了WSL功能.目前的…

wamp测试php,php开发环境搭建/测试/LAMP/WAMP

常用的php开发环境由四部分构成:php预处理器,Apache服务器,mysql数据库,phpmyadmin(管理mysql的图形化页面界面)php语言是一种跨平台语言,常用php环境基于windows和Linux两种操作系统搭建,在Linux系统由Apache、mysql、…

LeetCode 933.最近的请求次数

原题链接 解题思路&#xff1a;主要保留PING中比3000大的 class RecentCounter { public:RecentCounter() {}int ping(int t) {time.push(t);while(time.front()<t-3000){ //查询T是否比3000大time.pop(); //T比3000小就出队}return time.size();}queue<int> time;…

对象容器设计模式_容器对象模式。 一种新的测试模式。

对象容器设计模式如果您搜索什么是页面对象的描述&#xff0c;您会发现页面对象模式为我们提供了一种以可重用和可维护的方式对内容建模的常识方法。 还要指出&#xff1a;在Web应用程序的UI中&#xff0c;您的测试与某些区域交互。 Page Object只是将它们建模为测试代码中的对…

php中上传图片怎么显示出来,PHP上传图片类显示缩略图功能

有缩略图功能 但是 感觉不全面&#xff0c;而且有点问题&#xff0c;继续学习&#xff0c;将来以后修改下/*** Created by PhpStorm.* User: Administrator* Date: 2016/6/28* Time: 21:04*/class upload{protected $fileMine;//文件上传类型protected $filepath;//文件上传路径…

LeetCode 1047. 删除字符串中的所有相邻重复项

原题链接 解题思路&#xff1a; 我们可以用栈来维护没有重复项的字母序列&#xff1a; 若当前的字母和栈顶的字母相同&#xff0c;则弹出栈顶的字母&#xff1b; 若当前的字母和栈顶的字母不同&#xff0c;则放入当前的字母。 class Solution { public:string removeDuplica…

javaparser_JavaParser入门:以编程方式分析Java代码

javaparser我最喜欢的事情之一是解析代码并对其执行自动操作。 因此&#xff0c;我开始为JavaParser做出贡献&#xff0c;并创建了两个相关项目&#xff1a; java-symbol-solver和Effectivejava 。 作为JavaParser的贡献者&#xff0c;我反复阅读了一些有关从Java源代码提取信…

prepare的用法 php,PHP中的操作mysqli的预处理prepare

这篇文章主要介绍了关于PHP中的操作mysqli的预处理prepare &#xff0c;有着一定的参考价值&#xff0c;现在分享给大家&#xff0c;有需要的朋友可以参考一下PHP中的操作mysqli的预处理prepare1、【PHP错误】Cannot pass parameter 2 by reference这个错误的意思是不能按引用传…

wps xml转换表格_这功能WPS卖近百元?教你免费将PDF转成Word

[PConline 应用]PDF文件如何转换成为Word&#xff1f;很多朋友研究这个问题已经很久了&#xff0c;PDF更利于统一格式传播&#xff0c;Word更便于编辑&#xff0c;因此收到PDF文件后、想要修改时要如何将PDF转换成Word可谓是一个刚需。当然&#xff0c;不少办公软件提供了这样的…

junit 预期错误_谨慎使用JUnit的预期异常

junit 预期错误有时&#xff0c;当我们收到对jOOQ或其他库的拉取请求时&#xff0c;人们会将单元测试中的代码更改为更“惯用的JUnit”。 特别是&#xff0c;这意味着他们倾向于更改此代码&#xff08;公认的不是那么漂亮的代码&#xff09;&#xff1a; Test public void tes…

LeetCode 231. 2的幂

原题链接 class Solution { public:bool isPowerOfTwo(int n) {if(n<0)return false;if((n&n-1) 0) return true;return false;} };

睡眠 应该用 a加权 c加权_在神经网络中提取知识:学习用较小的模型学得更好...

在传统的机器学习中&#xff0c;为了获得最先进的(SOTA)性能&#xff0c;我们经常训练一系列整合模型来克服单个模型的弱点。 但是&#xff0c;要获得SOTA性能&#xff0c;通常需要使用具有数百万个参数的大型模型进行大量计算。 SOTA模型(例如VGG16 / 19&#xff0c;ResNet50)…

matlab读txt文件不完整,求助Matlab批量读取TXT文件出错

我用dlmread函数批量读取txt文件中的一个数据&#xff0c;但运行结果1.txt文件中只有一个数据0&#xff0c;调试时报错&#xff1a;错误使用 dlmread (line 147)文件结尾不支持空的格式字符串&#xff0c;文件有128列&#xff0c;78行&#xff0c;下面没有列全文件格式是&#…

面向对象代码_面向对象的代码生成方法

面向对象代码代码生成是减少无聊任务的不健康负担的一种常用方法&#xff0c;这些任务常常使我们急切地对代码苦恼。 我见过的许多代码生成框架都使用模板替换重复方法&#xff0c;在该模板中&#xff0c;您编写了模板&#xff0c;以了解生成的代码文件的外观&#xff0c;然后替…

LeetCode 20.有效括号

原题链接 方法一&#xff1a;解题思路&#xff0c;使用栈 模拟法&#xff1b;首先遍历将是左括号形式的部分压入栈中。然后对于右括号形式与栈顶元素进行比对&#xff0c;看是否匹配。如果匹配的话删除栈顶元素&#xff0c;不匹配直接返回false。最后栈为空则全部的括号匹配…

gpu编程如何一步步学习_如何学习贴片机编程

学习贴片机编程首选要对贴片机有所熟悉了解&#xff0c;另外对常用的电脑编辑软件要会使用。目前通常学习贴片机编程有专门的培训学校&#xff0c;或者跟着生产线上现有的贴片机编程师傅学习熟练后再进行编程操作。下面深圳智驰科技就来分享一下如何学习贴片机编程。对贴片机编…

plotcylinder matlab,Matlab在任意两点之间绘制三维圆柱

Matlab在任意两点之间绘制三维圆柱Matlab在任意两点之间绘制三维圆柱此函数可能存在一些不足&#xff0c;请多多指教&#xff01;function plotcylinder(u1,u2,color_a,r)Lnorm(u1-u2);RODu2-u1;[X,Y,Z]cylinder(r,100);x1X*0;y1Y*0;z1Z*0;ZL*Z-L/2;ROD_midpoint(u1u2)/2;xROD_…

简单内存池设计

关键词 内存池 链表 class A { public:static void* operator new(size_t size);static void operator delete(void* phead);static int m_iCout;//分配计数统计&#xff0c;每new一次&#xff0c;就统计一次static int m_iMallocCount;//每次malloc一次&#xff0c;统计一次p…

jdk8和hotspot_HotSpot的-XshowSettings标志的简单性和价值

jdk8和hotspot一个方便的HotSpot JVM标志 &#xff08; 选项为Java启动 java &#xff09;是-XshowSettings选项。 Oracle Java启动器描述页面中对此选项进行了如下描述 &#xff1a; -XshowSettings &#xff1a; category显示设置并继续。 该选项的可能类别参数包括&#xf…

怎样自动提取邮件的内容_这些最新的外贸搜索开发工具(图灵搜、谷歌搜索提取工具、易查查),你会使用吗?...

贸业务开展过程中&#xff0c;搜寻买家信息&#xff0c;开发买家客户&#xff0c;是开展外贸的前提。而掌握B2B、谷歌、搜索引擎、社交网站及众多搜索工具的运用技巧&#xff0c;则是外贸业务人员的基本功。本篇文章将结合图灵搜、谷歌搜索提取工具、易查查&#xff0c;三款工具…