当前位置: 首页 > 知识库问答 >
问题:

GridPane 9x9,带有用于数独的文本字段

阮选
2023-03-14

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

我在这个领域是个新手,所以我想在继续之前问问你们。

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

我的问题:

是否可以用纯java代码创建81TextField的,或者是否有一种方法可以使用FXML高效地创建,这样我就不会拆分视图(模型视图控制器)设置?

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

共有1个答案

东方修谨
2023-03-14

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

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

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

或者您可以使用纯代码(我更喜欢的方式,因为如果我不能只在fxml中使用fxml,我就不喜欢使用fxml,因为我经常这样做,所以我跳过它)。

模型代表您的数据。该数据中的更改将更改视图。这是通过观察者和视图类中的绑定完成的。

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

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

我希望我对如何使用三种不同方法在JavaFX中构造视图的描述能够帮助您。如果没有,请评论,我将尝试详细说明。:)

 类似资料:
  • 问题内容: 我正在尝试编写一个正则表达式验证:1到99之间的一组(或多个)数字用|或分隔,(可以将两者组合) 例 必须接受: 必须拒绝: 对于数字组,其直截了当:[1-9][0-9]。对于其余部分,这仍然是个谜。 题 有人可以协助提出正确的正则表达式吗? 问题答案: 说明:

  • 我在寻找一种方法来放弃我的程序中的一个getter。我有一堆动态创建的文本字段: 下面是getter,我想在这里返回聚焦的TextField 处理程序将接收聚焦字段并调用我的“model”-class中的checkInput()方法。 此刻,它接收到一个由我自己设置的预定义字段。检查答案的代码有效。感谢任何帮助我的人,如果我自己找到了一个方法,我一定会把它贴在这里。

  • 我正在尝试创建一个 JavaFX 条形图,它将数值轴 y 轴上的数字刻度线替换为基于 Likert 刻度的特定文本值。 例如:如果我有一个0-50的刻度,我希望10相当于“不同意”,20=“有点不同意”,30=“中性”,40=“有点同意”,50=“同意”。 这可能吗?我尝试过使用setTickLabelFormatter方法,该方法由JavaFX-NumberAxis上的tick-mark-lab

  • 问题内容: 我想在开始时有一个文本输入字段,其中包含“ $”符号,无论对该字段进行什么编辑,以使该符号保持不变。 如果只接受数字作为输入,我会很好,但这只是一个幻想。 问题答案: 考虑使用无边界输入字段周围带有边框的跨度来模拟具有固定前缀或后缀的输入字段。这是一个基本的启动示例:

  • 只想列出电子邮件地址字段,你们能帮我查询一下吗。

  • 问题内容: 据我了解,HTML5规范使您可以使用ID这样的数字。 我可以使用,但不能使用。如果尝试执行以下操作, 则会 在控制台中收到 SyntaxError:DOM异常12 。 我只是很好奇,为什么当HTML5规范说数字有效时,将数字用作ID 无效。我尝试了多种浏览器。 问题答案: 它是有效的,但是需要一些特殊的处理。从这里: 前导数字 如果标识符的第一个字符是数字,则需要根据其Unicode代