JavaFX 和后端交互通常是通过控制器(Controller)来实现的。以下是一个简单的示例,展示了如何在 JavaFX FXML 应用程序中与后端进行交互:
FXMLDocument.fxml
:<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<AnchorPane xmlns:fx="http://javafx.com/fxml" prefHeight="200" prefWidth="300">
<Button layoutX="100" layoutY="100" text="点击我" fx:id="myButton"/>
<Label layoutX="100" layoutY="150" text="" fx:id="myLabel"/>
</AnchorPane>
MyController
的类。将以下代码保存为 MyController.java
:import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
public class MyController {
@FXML
private Button myButton;
@FXML
private Label myLabel;
@FXML
public void initialize() {
myButton.setOnAction(event -> {
// 在这里与后端进行交互
String response = callBackend();
myLabel.setText(response);
});
}
private String callBackend() {
// 在这里实现与后端的交互逻辑
// 例如,使用 HttpClient 发送请求并获取响应
return "后端响应";
}
}
MainApp.java
:import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class MainApp extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml"));
primaryStage.setTitle("JavaFX 与后端交互示例");
primaryStage.setScene(new Scene(root));
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
在这个示例中,当用户点击按钮时,callBackend()
方法将被调用。在这个方法中,你可以实现与后端的交互逻辑,例如使用 HttpClient 发送请求并获取响应。然后,将响应设置为标签的文本。
请注意,这个示例仅用于演示目的。在实际应用程序中,你可能需要根据具体需求调整代码,例如处理异常、使用异步请求等。