问题标签 [fxml]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
11961 浏览

scala - Scala + JavaFX 桌面应用程序开发入门

是否有构建 Scala + JavaFX 桌面应用程序的指南或演练?

我很难找到一个好的来源,我正在使用 IntelliJ IDEA 作为 IDE。

即使是最简单的桌面 hello world 示例也会有很大帮助,因为我不知道从哪里开始。

更新:这就是我现在拥有的:

运行它我得到:

线程“主”java.lang.IllegalStateException 中的异常:不在 FX 应用程序线程上;当前线程 = 主线程

如何让它显示带有标签的 hello world 窗口?

0 投票
1 回答
21932 浏览

javafx-2 - 如何将内容动态加载到 JavaFX 选项卡?

我有一个使用 JavaFX 和 FXML 制作的 GUI。

这个 GUI 有很多组件,并不是所有的组件都需要在某一时刻。

例如,假设一个 GUI 从其服务器部分接收城市列表。每个城市都在其自己的选项卡上进行了描述(并用许多节点进行了描述)。城市集包含 30 个元素。

当 GUI 启动时,它会向服务器询问城市列表。服务器返回城市的随机“子集”(因此,它可以是莫斯科 + 里加 + 纽约或圣彼得堡 + 东京,或仅阿姆斯特丹,或一组中的所有 30 个城市)。

所以。我不需要在我的节点树中拥有所有 30 个选项卡(我想它们只会“吃掉”内存,仅此而已)。

我想管理我在 GUI 上每个时刻拥有的选项卡数量。

我的第一个简单解决方案如下:

  1. 创建一个 FXML 文件,其中包含所有城市的组件
  2. 在控制器类的初始化过程中,删除不需要的选项卡。

我有这个解决方案的问题。首先,我不知道是否tabPane.getTabs().remove(index)真的从节点树中删除了选项卡及其所有内容。其次,所有不需要的选项卡将在它们被删除之前被初始化,因此它们无论如何都会使用内存和资源,而且我的 GUI 可能比它必须的要慢。

我的第二个解决方案是:

  1. 制作很多 FXML。一个用于所有城市,一个用于每个城市,一个用于每个城市组合。

但是会有很多 FXML 的方法,所以这个解决方案也没有用。

我梦寐以求的解决方案:

  1. 为每个城市创建一个 FXML 文件,并为带有选项卡的主应用程序创建一个文件。
  2. 需要时将 FXML 城市文件内容动态加载到选项卡中。

所以,如果有人对此任务有任何想法,或者知道解决方案,请帮助我......

0 投票
1 回答
757 浏览

java - 如何使用资源包设置 fx:value?

在 java fx 中,可以使用 i18n 标签为组件使用%key符号。

例如 -

是否可以将 i18n 用于组件值?

以下代码不起作用 -

0 投票
2 回答
3551 浏览

media-player - javafx fxml 媒体播放器

有谁知道如何在 FXML 中嵌入媒体播放器来打开 youtube 视频?

我写了这个:

但是我在声明“媒体”的行中遇到了这个异常:

任何人 ?

谢谢你们 !

0 投票
2 回答
40622 浏览

controller - 带有控制器的多个 FXML,共享对象

各位晚上好,

我已经找到了很多关于这个主题的帖子,但我仍然无法将对象从 Controller1 传递到 Controller2。是否有完整的教程或一些示例项目可以做到这一点?

我已经走了这么远,直到我卡住了:

国家级

当程序启动时,主 FXML 被加载(Sample.fxml)。这包含一个边框窗格,顶部面板中有一个菜单栏,中间有一个内容窗格。在初始化时,我创建一个新的 Country 对象并将其存储在一个全局变量中。我有一个方法可以在单击菜单项时将另一个 FXML 加载到内容窗格中:

SampleController.java

现在我希望在加载 Sub1.fxml 时捕获 Country 对象,这意味着我需要在 initialize() 上获取 country 对象:

Sub1Controller.java

我的问题是,如何获取“原始”SampleController 对象,以便可以使用 getCountryFromRoot() 方法获取值为比利时的 Country 对象?我已经在这个问题上搜索了几个小时,并阅读了 StackOverflow 上关于这个的每一篇文章,但似乎我没有找到丢失的链接......任何帮助(最好是使用此代码)表示赞赏!

抱歉,这篇文章很长,我试图尽可能完整,否则我永远不会明白......

0 投票
1 回答
2735 浏览

javafx-2 - 在 Scenebuilder 中使用分层自定义 JavaFx 组件解析类路径

我正在使用 FXML 创建自定义组件。自定义组件以分层方式设计。

当我设计一个使用另一个自定义组件 A 的自定义组件 B 时,scenebuilder 中会弹出一个类路径问题对话框,我只需通过设置适当的类路径来解决这个问题。

但是,当我创建三个组件时,例如 C 包含 B 包含 A,并尝试在 Scenebuilder 中打开顶级组件 C 失败。它要求我提供我适当指定的类路径。它找到了 B,但没有找到 A。

类路径、FXML 和代码是正确的,因为应用程序能够正确执行。只有 Scenebuilder 有问题。

如何使用 Scenebuilder 打开分层自定义组件?

任何对使用 FXML 的分层组件定义示例的引用将不胜感激,并获得 50 分的奖励。(只需要 3 个级别)

0 投票
1 回答
380 浏览

javafx-2 - FXML 中是否有任何类似于 XAML 中的数据模板的标记技术?

例如,以声明方式为 ListView 中的项目指定 UI。

XAML方式。

0 投票
1 回答
3847 浏览

java - JavaFx 将实体模型绑定到 TableView

我有带有 TableView 和 MySQL 数据库的 JavaFx 应用程序。

我已经从数据库创建实体模型(产品)。

ObservableList<Products> proList;

我如何proList从数据库中填充它然后绑定我的@FXML private TableView<Products> tableView;

我在 JavaFx 中非常新。

谢谢

0 投票
1 回答
439 浏览

java - JavaFx ml Eclipse

我之前发布过一个关于这个话题的问题,我走得很远,但突然撞墙了

所以事情已经厌倦了 Eclipse 的 gui builder 中的构建,我想尝试 JavaFx Scene builder 到目前为止,我安装了 e(fx)clipse,我还安装了最新版本的 JDK

我上一个问题的人给了我这个链接: http ://docs.oracle.com/javafx/2/get_started/fxml_tutorial.htm

它基本上展示了我如何从在 java 中创建 FXML 项目开始。但是,此指南适用于 Netbeans,当我尝试按照创建项目的步骤操作时,我在以下事情上失败了:

2.在JavaFX 应用程序类别中,选择JavaFX FXML 应用程序。点击下一步

我根本没有选择 JavaFx Fxml 应用程序的选项。

所以我的问题是,你们中的任何人都有关于 eclipse 的指南吗,或者你们中的任何人有这方面的经验,并且能够分享我想在 JavaFx Scene builder 中构建我的 gui 时应该做什么?

希望你们中的一个能够帮助我

最好的祝福

马克·拉斯穆森

0 投票
1 回答
3780 浏览

javafx - JavaFX 自动滚动自动更新文本

我无法回答的关于 JavaFX 的新手问题,尽管我知道它必须非常简单,并且在我看过的任何地方都找不到任何资源(教程、许多 Oracle 在线文档、文章、以及知名 JavaFX 博主等)

我正在开发一个命令行(脚本)运行应用程序,并且我已经成功地从脚本中获得了输出(通过 ProcessBuilder),我可以以持续的方式显示,因为命令行上发生了一些事情。也就是说,我可以System.out.println(line);整天做,在控制台中显示输出,它只是从正在运行的“myProcess”返回的输入流中返回输出,创建如下:

所以我能够看到脚本返回的所有输出。

我想设置一个 JavaFX TextArea 或 ScrollPane 或者,不确定是什么,来显示这个输出文本(有很多,比如几千行)作为脚本中正在发生的事情的持续“进展”,当它发生的时候。我有一个场景,我有按钮并从该场景获取输入以启动脚本运行,但现在我想显示单击“运行此脚本”按钮的结果,可以这么说。

我假设我需要按照此处所述创建一个 TextArea,或者TextBuilder可能对开始制作它很有用。没有把握。

我需要一些帮助来设置绑定或自动滚动/自动更新部分。

有人可以给我一个开始的地方,用 JavaFX 做这个吗?我宁愿不使用 Swing。

(我正在使用 JavaFX 2.2、JDK 1.7u7 和所有最新的东西,是的,这是一个 FXML 应用程序——所以最好这样做。)

更新: Sergey Grinev 的回答在绑定部分非常有帮助。但是这里有一些关于我要求“如何设置帮助”时的更多详细信息——基本上,我需要将控制权返回到主场景以允许用户取消脚本,或者以其他方式监控这是怎么回事。所以我想“生成”运行该脚本的进程(也就是说,有某种“自由运行的进程”),但仍然从中获得输出。(在我最初的问题中,我不是很清楚。)

我在这里使用的技术(见下文)是对进程执行 waitFor ,但这当然意味着在脚本执行时对话框/场景是“挂起”的。我想重新获得控制权,但是如何将“p”(进程)传递给其他控制器部分(或者,简单地启动传递参数的其他进程以启动脚本并让它启动脚本) 然后通过绑定 Sergey Grinev 提到的方式进行自动更新——而不“挂起”场景/窗口?另外:如果用户请求,我可以“停止”这个其他进程吗?

这是我当前的代码(“等待”脚本——运行需要 20-40 分钟!——完成;这不是我想要的,我希望将控制权返回给用户):