这是一个类项目,我们需要在fxml doc上设置GUI。我已经在fxml上设置了布局但是我不确定如何让按钮打印出语句或调用不同java类中的方法。我尝试在网上搜索,但没有真正理解它。有人能告诉我如何让GUI不仅仅是一个按钮并让它执行类似mathamatical方法的事情吗?
谢谢
答案 0 :(得分:2)
这是FXML的一个例子:
https://github.com/SnakeDoc/superD/blob/master/src/com/vanomaly/superd/view/MainWindow.fxml
以下是控制器类的示例:
正如您将注意到的,在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
的“添加按钮和文本”部分