如何让我的fxml和java类一起工作?

时间:2014-04-09 22:47:31

标签: java fxml

这是一个类项目,我们需要在fxml doc上设置GUI。我已经在fxml上设置了布局但是我不确定如何让按钮打印出语句或调用不同java类中的方法。我尝试在网上搜索,但没有真正理解它。有人能告诉我如何让GUI不仅仅是一个按钮并让它执行类似mathamatical方法的事情吗?

谢谢

2 个答案:

答案 0 :(得分:2)

这是FXML的一个例子:

https://github.com/SnakeDoc/superD/blob/master/src/com/vanomaly/superd/view/MainWindow.fxml

以下是控制器类的示例:

https://github.com/SnakeDoc/superD/blob/master/src/com/vanomaly/superd/controller/MainWindowController.java

正如您将注意到的,在FXML中您可以指定一个控制器。或者,就像在这个例子中一样:

https://github.com/SnakeDoc/superD/blob/master/src/com/vanomaly/superd/Main.java

您可以在启动JavaFX应用程序期间使用Java代码指定控制器。

哪个不重要,但不要做两件事(你会收到错误)。

然后,在您的控制器中,您可以使用@FXML注释将该变量链接到FXML中具有相同 fx:id作为变量的正确GUI控件名称(再次参见示例)。

然后你可以像任何其他GUI控件一样使用该变量。 :)

示例:

@FXML private Label targetLabel;

在控制器中定义。

在FXML中,有:

<Label fx:id="targetLabel" layoutX="26.0" layoutY="16.0" styleClass="contrast-label" text="Target(s) :" />

注意fx:id如何与变量名相同?这告诉JavaFX链接它们(它们是相同的)。

答案 1 :(得分:1)

如果您希望fxml按钮使用其他类的方法,则需要通过使用fx:controller声明的控制器执行此操作。在您的控制器中,创建方法并将您需要的任何类导入控制器类。 fxml中的按钮将知道控制器类,但需要知道单击时要调用的方法。在fxml部分中使用onAction提供方法。

我建议查看oracle javafx教程here

的“添加按钮和文本”部分