javafx窗体程序_JavaFX实际应用程序:AISO HRC-Matic

javafx窗体程序

“ Real-World JavaFX Apps”系列中的第三个应用程序是一种重型数据输入应用程序,由称为HRC-Matic的关系数据库支持。 它由AISO在日内瓦开发。 AISO是一家专门开发基于JavaFX的业务应用程序的公司。 他们还在研究我在本系列的第一个博客( 欧洲广播联盟 )中介绍的应用程序。

瑞士当局使用HRC-Matic来注册企业(所有权,法律地位,资金,联系人)。 该应用程序将在安装它的每个州中被大约20个用户使用。 该软件目前正在纳沙泰尔,日内瓦,沃州和弗里堡地区进行最后批准阶段。

下图显示了应用程序呈现给用户的各种形式。 如您所见,这全部与数据输入有关。

日内瓦注册表– AISO本身的条目

日内瓦注册表– AISO本身的条目

值列表框(LOV)运行中

值列表框(LOV)运行中

JEntityFX数据表,用于快速输入数据

JEntityFX数据表,用于快速输入数据

复杂表格/基于标签的导航

复杂表格/基于标签的导航

该项目面临的最大挑战是表格视图的局限性以及对键盘导航的总体支持。 我被聘为HRC-Matic项目的顾问,并且对使键盘导航顺利进行(尤其是与表格视图结合使用)所做的努力有很多见识。

对于用于快速大量输入数据的应用程序,用户必须能够高效快速地输入数据(尽可能少的鼠标交互和键盘击打),这一点至关重要。 对于表格视图,这意味着用户可以立即开始编辑表格单元,而无需双击它或先按空格键。

用户还应该能够轻松跳转到表的第一行或最后一行。 焦点处理需要是可配置的,以便按最后一列中的tab键会导致同一行的第一列(如果需要,则显示下一行)以接收焦点。 我被分配自定义标准表视图,并最终成功了,但是要花很多代码,很多专门知识以及很多摆弄才能达到这个目标。

以下是AISO的Jean-Michel Verchere(主任)和ChristopheBédert(信息系统架构师)提供的访谈答案。

一般的问题

您的产品/项目的名称是什么?

产品的名称是HRC-Client,项目的名称是HRC-Matic。 HRC是和“R egistre杜Çommerce”德语和法语分别意为“egisterħandels R” HR和RC的组合。 “ Matic”是指寄存器中的任务自动化活动。

您的用户/客户是谁?

客户是加入该项目的日内瓦,沃州,纳沙泰尔和瑞士弗里堡州的商业登记册。

您的软件的目的是什么? 有什么好处?

HRC的目标是建立一套完整的解决方案,以协助管理瑞士商业登记的全部活动。 该软件用于管理公司注册,修改或注销的请求。 这些请求是由公司代表提出的。 可以通过Web应用程序在Internet上访问公司的公共信息。

该应用程序可以运行吗? 如果是,从什么时候开始。 如果不是,您打算什么时候上线?

该产品目前处于预生产阶段,并将于9月底在所有站点投入生产。

您的项目预算多少?

整个项目的总预算为180万美元。 对于HRC JavaFX客户本身,预算为100万美元。

发展历程

您是如何将必要的JavaFX专有技术带入您的团队的? (顾问,内部/外部培训课程)?

JavaFX专业知识是在内部建立的。 AISO已经在Java方面具有很强的技能,尤其是在Swing中。 AISO为Swing的发展开发了自己的内部框架,称为JEntity。 随着JavaFX的到来,设计了一个新的框架:JEntityFX。 Dirk Lemmermann向该框架提供了他的外部视野和出色的框架专业知识。

您是从哪个版本的JavaFX开始的? 一二八

最初,该项目是用Swing编写的。 在开发的开始,发布了JavaFX版本2,并切换到JavaFX。 今天,该应用程序已适应JavaFX 8。

您何时开始开发该应用程序,它花了多长时间?

开发于2012年底开始,历时3年。

有多少开发人员从事此工作? 总体上和在用户界面上。

核心团队由2个开发人员组成。 其他开发人员偶尔也会为UI和其他模块做出贡献。

应用程序有多大? 代码行,类数。

旧的应用程序大约有210个屏幕。 使用JavaFX,应用程序UI可以响应分组,简化和通用的屏幕。 因此,该应用程序包含约60个屏幕,这些屏幕具有许多主/从关系,并具有数据库中的约110个关联表。

JavaFX客户端有多大? 代码行,类数。

170'000线,3'074班

您为什么选择JavaFX作为前端技术? 非常重要的一点:为什么不选择HTML / Web?

客户需要真正的可持续性(8至12年)。 先前版本的开发始于1992年,并于2007年结束。必须能够提供与先前版本相同的功能和行为。 JavaFX的唯一替代品是Microsoft .Net。

由于以下原因,排除了Web技术:

  • 无法保证可持续性。
  • 短期技术生命周期。
  • 低性能风险。
  • 客户使用的各种Web浏览器存在兼容性风险。
  • 由于网络技术的变化而导致的升级费用。

说服决策者同意JavaFX难吗?

最初,该项目应该是用Swing编写的。 我们必须说服客户,主要是所涉及的IT部门,他们担心JavaFX对于此类应用程序不够稳定。

您在JavaFX部分面临的最大挑战/问题/问题/错误是什么,您如何解决它们?

键盘导航:在整个应用程序中,键盘导航和实现标准键功能存在很多问题。 这个想法是要有一个使用最少的鼠标就可以使用的应用程序。 若要解决此问题,我们必须用自己的控件来替换受影响的控件EventDispatcher。

可编辑的TableView:我们必须重写标准的TableView并重写焦点系统,因为从用户体验的角度来看,标准的可编辑的TableView无法正常工作。

您使用了哪些第三方产品/框架/工具(开源和商业),为什么选择它们?

我们内部的JavaFX框架JEntityFX(尚未发布)。

您是否混合了JavaFX和Swing代码?

没有

外表

您会在下一个项目中再次使用JavaFX吗? 请详细说明原因或原因。 您对其他公司/项目的JavaFX有哪些建议?

是。 JavaFX没有限制。 我们已经开发了自己的专业业务应用程序框架,该框架将用于将来的所有富客户端应用程序。

必须有一个框架来结构化和工业化JavaFX开发。

这使我们能够专注于应用程序的功能方面以及对用户具有高附加值的特定组件的开发。

您希望将哪些功能添加到JavaFX?

在可编辑模式下重做TableView。

您打算提供应用程序的移动版本还是移动附件?

不,不是在不久的将来,但是我们正在为将来的项目考虑这一点。

翻译自: https://www.javacodegeeks.com/2015/09/javafx-real-world-apps-aiso-hrc-matic.html

javafx窗体程序

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

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

相关文章

几十个Shell分析日志文件脚本!

点击蓝字关注我们因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络,侵删收集,整理一些服务器日志分析命令,可以用来分析自己网站服务器日志, 看看网站的访问量。看看有没有黑阔搞破坏…

flex布局水平垂直 垂直_垂直和水平装饰

flex布局水平垂直 垂直装饰器模式是在不更改其接口的情况下向对象添加功能的最佳方法之一。 我经常使用可组合装饰器,并且总是会问自己在功能列表必须可配置时如何正确设计它们。 我不确定我的答案是否正确,但是这里有一些值得深思的地方。 The Apartme…

一文读懂 | Linux 中的各种栈:进程栈 线程栈 内核栈 中断栈

点击蓝字关注我们因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络,侵删栈是什么?栈有什么作用?首先,栈 (stack) 是一种串列形式的数据结构。这种数据结构的特点是后入先出 (LIFO, L…

【C语言】彻底搞懂内存屏障与volatile

点击蓝字关注我们因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络,侵删最有价值的写在最前面内存屏障与 volatile 是高并发编程中比较常用的两个技术,无锁队列的时候就会用到这两项技术。然而这两项技术涉…

熟悉又陌生的arm 编译器详解(armcc/armclang)

点击蓝字关注我们因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络,侵删arm编译器学习首先来了解一下编译器,其通常分为三个部分:前端优化器后端。前端:词法、语法和语义分析&#x…

图文详解STM32单片机远程升级

点击蓝字关注我们因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络,侵删1、需要两份程序BootLoader和App程序,两份程序均可以通过jlink下载,只需要将下载地址修改一下即可:2、在Boot…

建立索引lucene_用Lucene建立搜索索引

建立索引lucene本文是我们名为“ Apache Lucene基础知识 ”的学院课程的一部分。 在本课程中,您将了解Lucene。 您将了解为什么这样的库很重要,然后了解Lucene中搜索的工作方式。 此外,您将学习如何将Lucene Search集成到您自己的应用程序中…

spring javafx_Oracle Spring Clean JavaFX应该吗?

spring javafx我们确实在Codename One上依赖JavaFX,我们的模拟器需要它。 我们的桌面版本使用它,而我们的设计器工具基于Swing。 我们希望它成功,这对我们的业务至关重要! 即使您是Java EE开发人员并且不关心桌面编程,…

哪些著名软件是用C、C++编写的?

点击蓝字关注我们因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络,侵删经常跟大家谈论C/C是多么的厉害,但总是耳听为虚,还需眼见为实,那如何做到眼见为实呢?当然还是要从…

java ee 下版本_将旧版本从Java EE 5减少到7

java ee 下版本Java EE 5于2005年首次引入,而Java EE 7于2013年问世。这两个版本之间存在7年的差距,从技术角度来说,这就像一个世纪。 许多组织仍然对使用Java EE 5感到困惑,并且有很多正当的理由选择不升级。 不过,如…

哪款 Linux 才是更好的 CentOS 替代品?

点击蓝字关注我们因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络,侵删AlmaLinux 是基于 RHEL 的企业级 Linux 发行版。以下是选择 AlmaLinux 作为 CentOS 替代方案的一些原因。CentOS 将于 2024 年 6 月到期。截至 2…

绩效从C到S,分享渣渣程序员逆袭秘诀!

点击蓝字关注我们因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络,侵删绩效面谈结束,从会议室出来,有一种不真实的感觉——这个季度我竟然拿了S?!要知道,上个…

海贼王为什么画风突变_什么是突变测试?

海贼王为什么画风突变最近,我再三提到突变测试一词。 因为可以说这种方法能够以超出代码覆盖范围的方式检测测试安全网的空白,所以我花了一些时间来追赶这个话题并尝试一下。 这篇文章总结了我的发现,作为对该主题的快速介绍。 什么是变异测…

C语言 #define 与 typedef 的区别与用法

点击蓝字关注我们因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络,侵删在C语言编程中,typedef 和 #define是最常用语句,可能很多工作过几年的工程师都没有去深究过它们的一些用法和区别。typed…

硬核!400 行代码实现一个虚拟机

点击蓝字关注我们因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络,侵删我们都知道理工科类的大学专业,一般都会在大一选择教授 C 语言作为编程入门语言,我最初接触编程也是入的 C 语言的坑。课…

Spring集成基础知识

本文是我们名为“ EAI的Spring集成 ”的学院课程的一部分。 在本课程中,向您介绍了企业应用程序集成模式以及Spring Integration如何解决它们。 接下来,您将深入研究Spring Integration的基础知识,例如通道,转换器和适配器。 在这…

C++最佳实践 | 工具

点击蓝字关注我们因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络,侵删前言C最佳实践: 支持Fork的编码标准文档本文档旨在收集对C最佳实践所进行的协作性讨论,是《Effective C》(Meyers) 和《C Coding Sta…

C语言函数返回 1 和返回 0 哪个好?

点击蓝字关注我们因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络,侵删基本上,没有人会将大段的C语言代码全部塞入 main() 函数。更好的做法是按照复用率高、耦合性低的原则,尽可能的将代码拆分…

抽象工厂和工厂方法示例_抽象工厂设计模式示例

抽象工厂和工厂方法示例本文是我们名为“ Java设计模式 ”的学院课程的一部分。 在本课程中,您将深入研究大量的设计模式,并了解如何在Java中实现和利用它们。 您将了解模式如此重要的原因,并了解何时以及如何应用模式中的每一个。 在这里查…

史上最污技术解读,我竟然秒懂了

点击蓝字关注我们因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络,侵删假设你是个妹子,你有一位男朋友,于此同时你和另外一位男生暧昧不清,比朋友好,又不是恋人。你随时…