Bonjour,
Je travaille sur un projet de stage et je dois faire un micriservice Rest sur Spring, j'ai donc sous Eclipse crée un microservice ville qui renvoie tous les villes enregistrées dans une base de donnée sql, "Ville" est un microservice, et aussi un projet à part, qui forme le back de mon appli.
Pour le front, et c'est là ou je rencontre des difficultés, j'ai crée un client (projet à part) qui va aller consommer ce microservice, via des beans et les afficher sur une interface javafx.
Via scène builder (par intermédiaire du fichier Ville.xml), j'ai réussi à afficher "en dur une liste de bâtiment", mais pas quand je tente à mettre mes objects beans pour les afficher dans une liste.
Via Postman je récupère bien mes enregistrements (data) en format json, récupérés de la base sql, mais quand je cherche à l'afficher sur un combobox je n'arrive pas.
Je vous remercie.
technologies utilisées :
sql
java 8
Spring
Feign
Postman
javafx
Scenebuilder
Classe MainAppFront
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75 package com.clientui.fxview; import java.io.IOException; import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.scene.layout.AnchorPane; import javafx.scene.layout.BorderPane; import javafx.stage.Stage; public class MainAppFront extends Application { private Stage stagePrincipal; private BorderPane conteneurPrincipal; @Override public void start(Stage primaryStage) { stagePrincipal = primaryStage; //Ca ne vous rappelle pas une JFrame ? stagePrincipal.setTitle("Application de gestion de personnes"); //Nous allons utiliser nos fichier FXML dans ces deux méthodes initialisationConteneurPrincipal(); initialisationContenu(); } private void initialisationConteneurPrincipal() { //On créé un chargeur de FXML FXMLLoader loader = new FXMLLoader(); //On lui spécifie le chemin relatif à notre classe //du fichier FXML a charger : dans le sous-dossier view loader.setLocation(MainAppFront.class.getResource("Menu.fxml")); try { //Le chargement nous donne notre conteneur conteneurPrincipal = (BorderPane) loader.load(); //On définit une scène principale avec notre conteneur Scene scene = new Scene(conteneurPrincipal); //Que nous affectons à notre Stage stagePrincipal.setScene(scene); //Pour l'afficher stagePrincipal.show(); } catch (IOException e) { e.printStackTrace(); } } private void initialisationContenu() { FXMLLoader loader = new FXMLLoader(); loader.setLocation(MainAppFront.class.getResource("Ville.fxml")); try { //Nous récupérons notre conteneur qui contiendra les données //Pour rappel, c'est un AnchorPane... AnchorPane conteneurPersonne = (AnchorPane) loader.load(); //Qui nous ajoutons à notre conteneur principal //Au centre, puisque'il s'agit d'un BorderPane conteneurPrincipal.setCenter(conteneurPersonne); //PersonneMapping controleur = loader.getController(); //controleur.setMainApp(this); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) { launch(args); } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63 package com.clientui.fxview; import java.net.URL; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.ResourceBundle; import com.clientui.beans.ProductBean; import com.clientui.beans.VilleBean; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.fxml.FXML; import javafx.fxml.Initializable; import javafx.scene.control.ComboBox; import javafx.scene.control.ListView; public class VilleEndure implements Initializable{ @FXML public ComboBox<String> comboBoxVille; @FXML public ComboBox<VilleBean> comboBoxVilleBean; ObservableList<String> listVille = FXCollections.observableArrayList("Paris", "Strasbourg", "Marseille", "Lyon", "Lille", "Montpelier", "Nante", "Mulhouse", "Colmar"); private ObservableList<VilleBean> listVilleBean = FXCollections.observableArrayList(); //comboBoxVilleBean.setItems(FXCollections.observableList(listVilleBean)); // public void initializeDescription(VilleBean v) { // // // comboBoxVilleBean.setItems(v.getVilNom()); // } @Override public void initialize(URL location, ResourceBundle resources) { comboBoxVille.setItems(listVille); comboBoxVilleBean.setItems(FXCollections.observableList(listVilleBean).setAll(listVilleBean)); //rien ne s'affiche sur le fx, page blanche //listVilleBean.setItems(comboBoxVilleBean); } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 package com.clientui.controller; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import com.clientui.beans.ProductBean; import com.clientui.beans.VilleBean; import com.clientui.proxies.MicroserviceProduitsProxy; import com.clientui.proxies.MicroserviceVilleProxy; @Controller public class VilleClientController { @Autowired private MicroserviceVilleProxy VilleProxy; @GetMapping(value = "/Villes") public String accueil(Model model){ List<VilleBean> villes = VilleProxy.listVilles(); model.addAttribute("produits", villes); // for(VilleBean v: villes) { // // System.out.println(" Prix produit " + v.getNomVille()); // // } return "Ville"; } }
![]()
Partager