// HelloWorldComponent.java
import org.reactfx.EventStream;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class HelloWorldComponent extends Application {
@Override
public void start(Stage primaryStage) {
BorderPane root = new BorderPane();
HelloReactComponent helloComponent = new HelloReactComponent();
root.setCenter(helloComponent.node());
Scene scene = new Scene(root, 400, 300);
primaryStage.setScene(scene);
primaryStage.setTitle("Hello React");
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
// HelloReactComponent.java
import javafx.scene.Node;
import javafx.scene.control.Label;
import org.reactfx.EventStream;
public class HelloReactComponent {
public Node node() {
Label label = new Label();
label.textProperty().bind(EventStream.valuesOf(model()).map(Object::toString));
return label;
}
private Object model() {
return "Hello, React!";
}
}
// UserListComponent.java
import org.json.JSONArray;
import org.json.JSONObject;
import javafx.scene.Node;
import javafx.scene.control.ListView;
import javafx.scene.control.ListCell;
import javafx.util.Callback;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.web.client.RestTemplate;
public class UserListComponent {
public Node node() {
ListView<User> listView = new ListView<>();
listView.setCellFactory(new Callback<ListView<User>, ListCell<User>>() {
@Override
public ListCell<User> call(ListView<User> param) {
return new ListCell<User>() {
@Override
protected void updateItem(User item, boolean empty) {
super.updateItem(item, empty);
if (item != null) {
setText(item.getName());
} else {
setText(null);
}
}
};
}
});
String url = "https://api.example.com/users";
ResponseEntity<String> response = new RestTemplate().exchange(url, HttpMethod.GET, null, String.class);
String json = response.getBody();
JSONArray userArray = new JSONArray(json);
for (int i = 0; i < userArray.length(); i++) {
JSONObject userObject = userArray.getJSONObject(i);
String name = userObject.getString("name");
int age = userObject.getInt("age");
listView.getItems().add(new User(name, age));
}
return listView;
}
private class User {
private String name;
private int age;
public User(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
}