BTS Services Informatiques aux Organisations 1ère annee MODULE SLAM2 – PROGRAMMA ION OBJET Mission Ml — Programmation devis Portails MISSION Ml : PROGRAMMATION DE DEVIS DE PORTAILS Savoirs et savoirs-faire développés dans la mission : Construction d’une interface graphique en Java en utilisant la bibliothèque de composants Swing – Programmation événementielle en Java Prérequis : Document objet » Contexte : La société page 1 « Révisions concepts de base de la programmation « Œso Fer or 8 Sni* to View Table des matières Partie 1 : Présentation du contexte • Les éléments pris en compte dans le calcul du prix artie 2 Partie 3 Les règles de calcul du prix 4 L’interface graphique de l’application Partie 4: devis par les commerciaux de la société. artie 2: Les éléments pris en compte dans le calcul du prlX Traverse haute Rail de guidage supérieur Traverse intermédiaire de guidage Traverse basse Poteau guide page 3 Rail de guidage inférieur partie 3 pour calculer le prix dune installation, on additionnera les éléments suivants . – Prix du rail supérieur (1) – Prix du rail inférieur (1) – Prix de la traverse basse (2) Prix de la traverse intermédiaire (2) – Prix de la traverse haute (2) Prix
Consultation/Modification Elaboration devis Longueur rail supérieur Largeur Nb galets Longueur rail inférieur Longueur traverse haute Longueur traverse intermédiaire Longueur traverse basse Longueur portail Largeur portail Matière portail Valider prix Champ affiché automatiquement Page 6 PROBLÈME : Ce code est de mauvalse qualité : Des calculs similaires sont répétés Sont mis ensemble des calculs sur des objets différents (rails, traverses, portai) – Beaucoup de calculs les uns à la suite des autres CONCLUSION Il est impératif de classer les calculs par objet manipulé dans l’application Partie 6 : Le diagramme des classes utilisées par RAIL TRAVERSE PORTAIL – longueur – largeur – nbGalet PAGF nom du projet, puis choisir [New – Other – WindowBullder – Swing Designer – JFrame].
Donner par exemple le nom « menu » à la classe allant être crée. 2 Comprendre le code généré à ce premier stade : public class menu extends JFrame { rivate J Panel contentpane; * Launch the application. public static void main(String[] args) ( C] Procédure main, recherchée dans le package, et exécutée au lancement de l’application. EventQueue. invokeLater(new Runnable() { public void run() { try { menu frame new menu(); Cl Instanciation de cette classe « menu’ frame. setVisible(true); } catch (Exception e) ( e. printStackTrace(); héritant de la classe JFrame donc définissant une fenêtre Windows Cl Affichage de cette fenêtre * Create the frame. ublic menu() { Construc sse palette, cliquer sur le composant ‘]Menultem » Cliquer ensuite sur le libellé « Add items here » figurant sous l’item « Devis » – Saisir le nom du premier item du premier menu, c’est-à-dlre « Elaboration » – Dans la palette, re-cliquer sur le composant « JMenultem » – Cliquer sur l’item venant d’être créé précédemment (item « Élaboration ») pour placer sous ce dernier le nouvel item – Et ainsi de suite. Etape no 2 : Création de la fenêtre d’élaboration d’un devis 1 Création de la fenêtre : Comme pour la fenêtre de menu, dans la partie gauche de la fenêtre d’Eclipse, effectuer un clic droit sur le nom du projet, puis choisir [New — Other – WindowBuilder
Swing Designer – Frame]. Cette nouvelle classe comporte également une procédure main, que l’on pourrait enlever. Cependant, le fait de l’enlever fait souvent planter Windowguilder, ou fait que certains composants n’apparaissent pas sur l’onglet « Design ». Par conséquent, vous la laisserez. 2 placement d’un « Layout Manager » (gestionnaire de placement des composants) : Sélectionner directement dans la palette le layout GridBagLayout, qui permet d’aligner des composants verticalement et horizontalement. Sélectionner ensuite les divers composants (JLabel, JTextFieId, JButton, etc. et les placer sur la fenêtre, dans les cases souhaitées du layout.
Pour réduire la largeur d’un composantJTextField : 2 s’effectuer par exemple, lors du clic sur l’item « Elaboration » du menu « Devis » : – Effectuer un cllC droit sur l’item et choisir « Nouveau’ – Choisir [Add event handler – action – actionPerformed] Cl Les lignes de code suivantes sont alors générées, sous la ligne de code définissant l’item de menu JMenultem mntmElaboration = new mntmElaboration. addActionListener(new ActionListener() { public void actianPerformed(ActionEvent e) { mettre ici le code à executer lors du clic sur l’item FAIRE EN SORTE QUE LORSQUE L’ON FERME UNE FENETRE OUVERTE PAR LE MENU, L’APPLICATION NE SE TERMINE PAS MAIS QUE SIMPLEMENT LA FENÊTRE SE FERME: Si l’on teste le menu, on remarquera que chaque fois que l’on ferme une fenêtre ouverte par le menu, l’application se termine. Pour remédier à cela, aller dans chaque constructeur de fenêtre, sur la ligne setDefaultCIoseoperation0Frame. EXlT ON CLOSE); Remplacer JFrame.
EXIT ON CLOSE par Partie 10 : Programmation du calcul du devis LES TÂCHES À ACCOMPLIR LORS DU CuC SUR LE BOUTON « VALIDER » : Calcul du prix du devis, en ayant créé 2 instances de la classe Rail, 3 instances de la classe Traverse et une instance de la classe Portai float source=7. 06F; int destination = (int) source; On fait précéder la variable ? convertir, du format de destination encadré de parenthèses Conversion d’un double en une chaîne : nouvellechaine – Double. toString(variabledouble); Conversion de type String vers un type int, double, float String sl – – « 123 »; String s2 int xl Integer. parselnt (sl doublex2 Double. parseDouble(s2); float x3 Float. arseFloat(s2); Conversion en type String à l’aide de la méthode « valueOf’ de la classe String nt x = 123 String s = String. valueof(x); NB : La méthode « valueOfi convertit n’importe quel type (char, double, float, int, long). Conversion en type int d’un type char int x; chary x = C Il faut convertir y en String, par la méthode « valueOf » de la classe String, car la méthode i’parselnt » de la classe Integer n’accepte qu’un argument de type String. Or y est de type « char » Annexe 2 : Jeu d’essai (Valeurs saisies en mètres) Longueur rail supérieur : 0. 6 Longueur rail inférieur : 3. 6 Largeur : 0*08 Largeur : O. IO Loneueur traverse haute : Loneueur traverse haute : 3. 3