我正在尝试将 aGridPane
用于数独 9x9,使用FXML
.
我在这个领域相当新,所以我想在继续之前问你们。
我创建了一个GridPane
9x9,现在我TextField
在每个节点中使用来显示数字并让用户自己编写一个新数字。
我的问题:
是否可以在纯 Java 代码中创建 81
TextField's
,或者有没有办法使用 FXML 有效地做到这一点,所以我不会拆分我的视图(模型-视图-控制器)设置?
提前感谢,如果我的问题不清楚,我很难解释它。
Fxml 不是在 javafx 中使用模型视图控制器模式的唯一(在我看来也不是最好的方法)。
视图基本上描述了应用程序/窗口/部分的外观。这可以使用纯 fxml 来完成,但通常这还不够。特别是当您想要/需要动态构建的内容时(在您的情况下您并不真正需要)。因此,您可以只添加这 9 个网格行和 9 个网格列,然后使用 FXML 将 TextFields 添加到其中。然而,这似乎非常无效,因为您可以使用循环并且在编程时会消除大量时间浪费。
您可以通过混合使用 fxml 和代码来做到这一点:首先在您的视图类中加载 fxml,然后使用代码添加到它。
或者你可以使用纯代码(我的首选方式,因为如果我不能只在 fxml 中使用 fxml,我不喜欢使用它 - 因为这对我来说经常是这种情况,所以我只是跳过它)。
模型代表您的数据。该数据的更改将更改视图。这是通过视图类中的观察者和绑定完成的。
控制器操纵数据。最常见的是使用用户输入来完成,但也可以使用其他事件来实现。
但是:请记住,MVC 只是一种非常松散的模式,并没有定义明确的方法来实现它,因为它不是针对特定的语言/框架量身定制的。虽然有一些教程试图教授如何在 JavaFX 中实现 MVC 模式,但它们都以不同的方式解释 MVC,因此实现也大不相同。
我希望我对如何使用三种不同方法在 JavaFX 中构建视图的描述对您有所帮助。如果没有,请发表评论,我会尽力详细说明。:)