支持

常见问题

查找关于 FlexGanttFX 的最常见问题答案 — 包括许可、平台支持、Java 版本等。

常规

FlexGanttFX 是什么?
FlexGanttFX 是面向 JavaFX 应用的强大且复杂的自定义控件。它能够以美观的可视化方式显示与时间轴相关的数据。FlexGanttFX 允许编辑 / 修改数据,从而让用户执行规划和排程操作。FlexGanttFX 不包含任何业务逻辑,这意味着当用户完成更改后,需要由应用程序自行做出正确响应。
我可以用 FlexGanttFX 构建什么?
你可以构建任何需要在时间轴下方显示活动的应用程序。大多数情况下,客户会用它构建规划和排程应用。例如 ERP 系统、制造执行系统等。
FlexGanttFX 是开源的吗?
不是,FlexGanttFX 是商业软件。公司可以购买许可证,用于使用它,并将其作为自身解决方案的组成部分进行部署。
FlexGanttFX 支持哪些 Java 版本?
FlexGanttFX 支持 Java 8 到 Java 26。Java 11+ 版本可与 OpenJFX 11 或更高版本一起运行。
FlexGanttFX 支持哪些 JavaFX / OpenJFX 版本?
对于 Java 8,FlexGanttFX 使用 JDK 捆绑的 JavaFX 版本。对于 Java 11 到 26,FlexGanttFX 可与 OpenJFX 11 或更高版本一起运行。
如何将 FlexGanttFX 添加到我的项目?
FlexGanttFX 发行包包含一个 lib 文件夹。该文件夹中的四个 JAR 文件需要添加到应用程序的 classpath 或 module path。此外,名为“ext”的文件夹中包含两个同样必需的 JAR 文件。一个是 FlexGanttFX 所需的 ControlsFX 版本,另一个用于支持许可证密钥。
你们有 FlexGanttFX 的 Swing 版本吗?
有。它名为 FlexGantt,已经存在多年。你可以从 DLSC 网站下载。它同样是商业产品,与 FlexGanttFX 一样需要许可。
你们有 FlexGanttFX 的 JavaScript 版本吗?
我们的合作伙伴 AISO 已经用 JavaScript 重新实现了 FlexGanttFX API。你可以访问他们的产品网站。它同样是商业产品,与 FlexGanttFX 一样需要许可。

部署

FlexGanttFX 能在 Chrome 或 Safari 等浏览器中运行吗?
可以,但需要使用 JPro。你可以在他们的网站上找到关于该产品的更多信息
FlexGanttFX 能在 iPad、iPhone、Android 等移动设备上运行吗?
可以,但需要使用 Gluon Client 插件并结合 GraalVM
FlexGanttFX 能在嵌入式设备上运行吗?
我们认为可以,因为 Java 和 JavaFX 可以在嵌入式设备上运行。但坦率地说,我们目前还没有遇到这个用例。到目前为止还没有客户提出这种需求。因此,如果你想这样做,请尝试一下并告诉我们结果。

功能

你们是否提供不同方式来布局时间轴数据 / 活动?
是的。FlexGanttFX 支持三种不同布局。最常用的是标准甘特图布局,其中活动显示为水平条。此外,应用程序可以通过图表布局显示图表 / 直方图。还有一种非常独特的议程布局,活动的显示方式类似普通日历视图,也就是 y 轴用于表示一天中的时间。
FlexGanttFX 支持打印吗?
不完全支持。过去我们发现大多数应用并不需要此功能,而且打印复杂甘特图的可用性有限。很多时候,打印版本的需求与屏幕版本的需求差异很大。因此,我们决定将这项任务留给使用 FlexGanttFX 的应用程序自行处理。目前唯一可行的方法是使用标准 JavaFX 打印方式:应用程序创建视图快照并发送到打印机。
我可以在多个甘特图之间同步滚动(分屏)吗?
可以,只需在两个或多个甘特图实例之间绑定属性即可。不过我们已经为你完成了这项工作,并添加了专用容器,使你可以同时显示两个、四个或任意数量的图表。这些容器名为 DualGanttChartContainer、QuadGanttChartContainer 和 MultiGanttChartContainer。
用户如何滚动时间轴?
用户可以通过甘特图右侧底部显示的滚动条进行滚动。支持两种不同类型的滚动条。一种是用于固定时间范围(最早时间和最晚时间)的常规滚动条;另一种是基于 ControlsFX 项目的 PlusMinusSlider 的自定义滚动条,允许用户无限地向过去和未来滚动。这些滚动条默认自动隐藏,只有当用户将鼠标移动到图形区域底部边缘时才会显示(可禁用)。用户也可以通过“平移”滚动,即在背景上按下鼠标并向左或向右拖动。
是否支持拖放?
支持。你可以在同一窗口中的甘特图之间拖动活动,也可以更原生地在不同窗口之间或拖到桌面。所有这些都可以配置。
是否可以向行添加控件?
可以。可以注册一个控件工厂回调,每一行都会调用它。返回的控件会放置在该行上方。另一个很棒的功能是能够为每一行添加一个完全不同的 UI,当该行翻转时它会变得可见,也就是说这个 UI 实际位于行的“背面”,并可按需显示。

许可

有哪些许可证类型?
我们支持两种许可证类型:开发者许可证和运行时许可证。开发者 许可证在 30 天试用期结束后即为必需。开发者许可证允许你继续使用产品,但会在控制台看到提示,说明该产品只能用于开发目的。一旦你的产品准备发布,就必须使用 运行时 许可证。这与发布对象是内部使用还是第三方无关。
在哪里购买许可证?
你可以直接向 DLSC Software & Consulting GmbH 订购。只需给我们发送电子邮件
如何设置许可证密钥?
你必须在创建任何 FlexGanttFX 控件之前调用 FlexGanttFX.setLicenseKey("...")。理想情况下,应在应用程序的 main() 方法中立即调用它。或者,也可以将密钥作为名为 flexganttfx.license 的系统属性传入。

定制

处理活动时,我可以更改编辑行为吗?
可以。可以注册一个回调,用于精确指定何时激活哪种编辑操作。默认回调允许用户在鼠标光标位于活动左边缘时更改开始时间,在光标位于活动右边缘时更改结束时间,在鼠标光标位于中间时移动整个活动。如果该活动是“可完成”活动,则左边缘会触发一个编辑操作,用户可以在其中更改该活动的“完成百分比”值。
我可以更改活动的视觉外观吗?
当然可以。FlexGanttFX 中的活动通过 JavaFX 的 Canvas API 绘制。可以为不同类型的活动注册不同的活动渲染器。渲染器可以使用活动提供的信息(例如“状态(status)”)以不同方式绘制活动。渲染器让你能够控制屏幕上的每一个像素。
我可以向行添加可视化信息吗?
可以,这是通过所谓的“系统层”完成的。FlexGanttFX 随附一组标准图层,例如 CalendarLayer 知道如何绘制周末等内容(灰色背景)。另一个例子是 GridLinesLayer,它知道如何绘制顶部时间轴定义的网格线。
FlexGanttFX 支持图层吗?
支持,图层是 FlexGanttFX 中的一等概念。你可以将活动放在不同图层上,从而用次要活动叠加在主要活动之上,这些次要活动仅用于标注主要活动。图层可以随时显示或隐藏。API 也可用于更改图层顺序。标准甘特图工具栏提供了用于操作图层顺序和可见性的 UI。
时间轴可以定制吗?
可以。时间轴由两个子组件组成。第一个是 日期线,用于显示实际时间 / 日期 / 小时。其 UI 由可插拔的单元格工厂创建。第二个子组件是 事件线。它显示时间光标,同时也提供一个“冻结行”,应用程序可以在其中显示全局活动和事件。这些内容可以通过可插拔渲染器进行定制。

还有问题吗?

找不到你需要的答案?请联系 DLSC 团队。

联系我们