我正在尝试使用GridPaneFXML用于Sudoku 9x9。

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

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

我的问题:


  可以用纯Java代码创建81 TextField's吗?
  有一种方法可以使用FXML有效地做到这一点,所以我不会拆分视图
  (模型-视图-控制器)设置了吗?


在此先感谢您,如果我的问题不清楚,很抱歉,我很难解释它。

最佳答案

Fxml不是在Javafx中使用模型视图控制器模式的唯一方法(我认为这不是最佳方法)。

该视图基本上描述了应用程序/窗口/部分的外观。可以使用纯fxml完成​​,但是通常这还不够。尤其是当您想要/需要动态生成的内容(在您的情况下,您实际上并不需要)时。因此,您可以仅添加这9个网格行和9个网格列,并使用FXML将TextFields添加到其中。
但是,这似乎非常无效,因为您可以使用循环,并且在编程时会消除很多时间浪费。

您可以通过混合使用fxml和代码来实现:
首先将fxml加载到您的视图类中,然后使用代码将其添加到其中。

或者,您也可以使用纯代码(我的首选方式,因为我不喜欢仅在fxml中不能使用fxml,因为我通常不这样做,所以我只是跳过了它)。

模型代表您的数据。该数据的更改将更改视图。这是由观察者完成的,并绑定到视图类中。

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



但是:请记住,由于MVC并非针对特定的语言/框架而量身定制,因此它只是一种非常宽松的模式,并未定义明确的方式来实现。尽管那里有一些教程试图教授如何在JavaFX中实现MVC模式,但是它们对MVC的解释各不相同,因此实现方式也大不相同。

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

关于java - 带有TextField for Sudoku的GridPane 9x9,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35748128/

10-13 09:12