【发布时间】:2019-06-15 00:29:25
【问题描述】:
我两周前开始编码,我正在尝试 java higgledy-piggledy。
我编写了一个 Java 斐波那契数列程序,它可以让您选择数列的起点和长度。
我使用代码构建了我的第一个 JavaFx Gui,但随后更改为 SceneBuilder。
从那时起,我试图在 sample.fxml 和 Controller.java 中实现我的代码。我想出了如何调用方法并将它们与我的 gui 与场景构建器链接,但我不太清楚如何调用带参数的方法,比如我的斐波那契方法。
对不起,这是我的第一个问题。不要因为我犯错而恨我。 谢谢指教。
这对我的手工编码 gui 非常有效,因为我可以在对象上使用我的方法并使用该方法调用触发事件。
Google 是我的朋友,但我还找不到关于这个主题的任何解决方案。
我正在考虑在我的代码中使用声明的变量而不是参数,然后使用 setter 调用它们,但我不知道如何在 Scene Builder 中实现它。
i only can link methods without parameters (events work) (
void fibonacci(int start, int length) {
while (i <= start) { (not everything due to understainding)
//the syntax of my method in "original" javafx getting called by
if (actionEvent.getSource() == sub_button) {
FibMain fibMain = new FibMain();
while (true) {
try {
length = Integer.parseInt(fib_length.getText());
start = Integer.parseInt(fib_start.getText());
break;
} catch (NumberFormatException e) {
System.out.println("ERROR!");
fib_out.setText("ERROR! ONLY NUMBERS ARE ALLOWED!");
throw e; fibMain.fibonacci(start, length); }
这是我的工作代码,我很想用 start 和 length 参数简单地调用该方法。
我希望能够在 SceneBuilder 中使用参数 start 和 length 调用 Method 并将它们链接到 ActionEvcent。
【问题讨论】:
-
您好,谢谢您的回复。我已经将我的控制器与我的 Fxml 链接了。我也可以调用方法,但不能调用带参数的方法。我在你提供的那个问题中遗漏了什么吗?
-
我添加了一个答案。关键是您不能将任意方法链接到节点,但事件处理程序方法本身可以调用您要调用的其他方法。
-
为什么要这样实现解析输入?循环总是只有一次迭代,那么为什么要使用一次呢?此外,假设输入有效,您总是会覆盖作为
start参数传递的值,那么为什么还要传递它呢?length相同。此外,编译器应该抱怨您在使用throw语句退出catch块后添加语句。为什么不直接在事件处理程序中解析输入,并以结果作为参数调用原始fibonacci方法(您可能需要做一些工作才能正确输出)。
标签: java javafx scenebuilder