GridPane 9x9 与数独的 TextField

GridPane 9x9 with TextField for Sudoku

我正在尝试使用 FXML 对数独 9x9 使用 GridPane

我在这个领域还很陌生,所以我想在继续之前问问你们。

我已经创建了一个 GridPane 9x9,现在我在每个节点中使用 TextField 来显示数字并允许用户自己写一个新数字。

我的问题:

Is it okay to create the 81 TextField's in pure java code or is there a way to do it efficiently using FXML so I don't split my view (Model-View-Controller) setup up?

提前致谢,如果我的问题不清楚,我很难解释。

Fxml 不是唯一(在我看来不是最好的方式)在 javafx 中使用模型视图控制器模式。

视图 基本上描述了应用程序/windows/部分的外观。这可以用纯 fxml 来完成,但通常是不够的。特别是当您想要/需要动态构建的内容时(在您的情况下您并不真正需要)。因此,您可以只添加这 9 个网格行和 9 个网格列,并使用 FXML 将 TextFields 添加到其中。 然而,这似乎非常无效,因为您可以使用循环并在编程时消除大量时间浪费。

您可以通过混合使用 fxml 和代码来做到这一点: 首先在您的视图中加载 fxml class,然后使用代码将其添加。

或者您可以使用纯代码(我的首选方式,因为如果我不能仅在 fxml 中使用它,我不喜欢使用 fxml - 因为这对我来说通常是这种情况,所以我只是跳过它)。

模型代表您的数据。该数据的更改将更改视图。这是通过观察者完成的,并在视图 class.

中绑定

控制器 操纵数据。这通常是使用用户输入完成的,但也可以使用其他事件来实现。


但是:请记住,MVC 只是一种非常松散的模式,并没有定义明确的实现方式,因为它不是针对特定语言/框架量身定制的。虽然有一些教程试图教授如何在 JavaFX 中实现 MVC 模式,但它们对 MVC 的解释都不同,因此实现也大不相同。

我希望我对如何使用三种不同方法在 JavaFX 中构造视图的描述对您有所帮助。如果没有,请发表评论,我会尽力详细说明。 :)