JavaFX : Formulaire d’insertion (avec JDBC)

Intro

  • Votre travail sur votre MyEasyline continue ;-)

Installation sur VS Code

  • Télécharger scene builder
  • Télécharger javafx
  • Ajouter les jar du répertoire javafx dans les dépendances de votre projet

lib

  • avec ctrl shift p, vérifier la configuration de votre java (configure java runtime) pour qu’elle soit d’une version compatible avec javafx. Sinon télécharger un nouveau jdk et modifier la version dans vscode.

Connexion de l’interface au code

  • realiser une interface voyageurAjout.fxml sur scene builder en ajoutant l’id ET l’fxid
  • ajouter un nom de controleur à votre interface (en bas à gauche), de la forme easyline.VoyajeurAjoutControleur
  • enregistrer l’interface dans le repertoire de votre projet (au meme endroit que vos .java)
  • réaliser la classe VoyajeurAjoutControleur.java. Les id doivent etre les memes que sur voyageurAjout.fxml
package easyline;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
public class ControleurAfficheVoyageur {
    @FXML private TextField idVoyageur;
    @FXML private TextField nomVoyageur;
    @FXML private Button valider;
    
    
    public void validerButton(ActionEvent event){
        Voyageur v = new Voyageur("joe",20);
        nomVoyageur.setText(v.getNom());
    }
}
  • dans l’interface fxml, sur le bouton, on Action, mettre la fonction validerButton
  • realiser la classe Main.java
package easyline;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.stage.Stage;
import javafx.scene.Parent;
import javafx.scene.Scene;

public class Main extends Application {

    public static void main(String args[]){
        launch(args);
    }
    @Override
    public void start(Stage panel) throws Exception {
        // TODO Auto-generated method stub
       Parent root = FXMLLoader.load(getClass().getResource("afficheVoyageur.fxml"));
       Scene scene = new Scene(root,600,300);       
       panel.setTitle("waza");
       panel.setScene(scene);
       panel.show();
    }
    
}

 

  • dans vscode, aller dans RUN->add configuration et ajouter la ligne vmArgs pour que le projet integre le javafx. Attention, à ajouter dans mainClass : Main
{
            "type": "java",
            "name": "Main",
            "request": "launch",
            "mainClass": "easyline.Main",
            "vmArgs": "--module-path [A REMPLACER]/javafx-sdk-20.0.1/lib --add-modules javafx.controls,javafx.fxml",
            "projectName": "easyline_b62348da"
        }
  • lancer cette classe.

Etape 1 : formulaire fonctionnel d’insertion

Livrable : Easyline/mission7/…

  1. Créer un formulaire dans une fenêtre JavaFX qui permettent d’ajouter les informations nécessaires pour compléter le profil d’un voyageur sans adresse postale (voir la table).
    formulaire
  2. Tester en plusieurs étapes son fonctionnement lors de la validation :
    1. Vider tous les champs lors du clic sur Annuler.
    2. Afficher les données saisies par l’utilisateur sur la sortie standard (System.out)
    3. Contrôler la saisie des différents champs (aucun champs vide accepté, champ numérique sans caractère alpha)
      1. message d’erreur s’affiche en rouge sur le formulaire ou
      2. Boite de dialogue explicative du champs ayant un problème
    4. Construire un Objet Voyageur grâce aux informations du formulaire (si la saisie est OK)
      1. afficher l’objet construit sur la sortie standard
      2. afficher l’objet construit dans un libellé ajouté sur le formulaire
  3. Assurez-vous que votre formulaire se réinitialise à chaque validation !

Etape 2 insertion avec JDBC

Livrable : Easyline/mission7/…

  1. Il faut créer une fonction d’insertion d’une adresse dans une nouvelle classe VoyageurDAO (côté backend)
    public class VoyageurDAO{
           public int insertAdresse(AdressePostale ap){
             //code JDBC à completer
             // retour : int qui correspond au nouvel identifiant généré 
           }
    }
  2. Tester cette fonction dans un main classique (sans Javafx)
  3. Ajouter une nouvelle fonction JDBC pour insérer un nouveau voyageur et son adresse
    public class VoyageurDAO{ 
          public int insertVoyageur(Voyageur v){ 
               //code JDBC à completer
               //utilisation de la première méthode créée
               // retour : int qui correspond au nouvel identifiant généré
          } 
    }
  4. Tester cette fonction dans un main classique (sans Javafx)
  5. Intégrer cette nouvelle classe à votre projet FrontEnd (Avec JavaFX)
  6. Utiliser vos nouvelles fonctions pour insérer le voyageur
    1. Demander la confirmation de l’ajout via une boite de dialogue (Ok : insertion ou annuler: pas d’insertion)
    2. Afficher un message rassurant si l’insertion a bien fonctionné (en vert) !
  7. Assurez-vous que votre formulaire se réinitialise à chaque validation !