Académique Documents
Professionnel Documents
Culture Documents
TP en Java | Mr. Mohammed Rda Ouassini | Licence gnie informatique | Facult des Sciences et Techniques de Tanger
Pour que la classe, dclare en dessus, puisse couter un objet, on doit utiliser la mthode addActionListener sur lobjet couter, dans votre cas lobjet est un JButton : boutonAecouter.addActionListener(new classQuiEcoute()); Voici comment on dclare une classe qui implmente l'interface KeyListener : class classeQuiEcoute implements KeyListener { public void keyTyped(KeyEvent ke) { //Instruction } public void keyPressed(KeyEvent ke) { //Instruction } public void keyReleased(KeyEvent ke) { //Instruction } }
Pour que la classe, dclare en dessus, puisse couter un objet, on doit utiliser la mthode addKeyListener sur lobjet couter, dans votre cas lobjet est un JTextField : JTextFieldAecouter.addKeyListener(new classQuiEcoute());
Objectif :
En sappuyant sur les exemples que vous avez vus en cours et des rappels en dessus, vous devez raliser un convertisseur, voici un exemple :
Fentre JFrame
La structure de la fentre se prsente comme ceci : Les deux rectangles en bleu reprsentent deux GridLayout des JPanel ; un pour les boutons reprsentant les grandeurs et lautre pour les JTextField et leurs JLabel. Le rectangle en rouge reprsente le BorderLayout du conteneur JPanel global.
TP en Java | Mr. Mohammed Rda Ouassini | Licence gnie informatique | Facult des Sciences et Techniques de Tanger
Page 2
Chaque grandeur a ses propres units de mesure. Par exemple si vous cliquez sur le bouton Longueur les units de longueur doivent apparatre ct des champs de saisie, comme lindique la capture gauche. Idem pour les autres grandeurs. Pour vous aidez, voici les relations de conversion que vous allez utiliser : Longueur : Mtre = 1609.344 * Mile Mtre = 1000 * Kilomtre Masse : Kilogramme = Livre / 2.20462 Kilogramme = Gramme / 1000 Temprature : Celsius = ((Fahrenheit - 32) / 1.8) Celsius = Kelvin - 273.15; Vitesse : (Kilomtre/Heure) = (Mile/Heure) / 0.62137 (Kilomtre/Heure) = Nud / 0.53996 La mthode main de la classe principale ne doit contenir que le code suivant : package convertisseurapp; public class ConvertisseurApp { public static void main(String[] args) { Convertisseur convertisseur = new Convertisseur(); } } Votre classe JFrame doit avoir la structure suivante : public class Convertisseur extends JFrame { //Dclaration des objets
TP en Java | Mr. Mohammed Rda Ouassini | Licence gnie informatique | Facult des Sciences et Techniques de Tanger
Page 3
public Convertisseur() { //Personnalisation de la fentre //Personnalisation des JPanel et ajout des boutons //Ainsi que lajout des classes d'coute pour chaque objet } //Dclaration des deux classes internes (une qui implmente //l'interface ActionListener et lautre qui implmente //KeyListener) } Aprs avoir saisi un chiffre, la classe dcoute des JTextField va rcuprer lid du champ et faire appel la mthode de conversion. La mthode de conversion doit : Vrifier si les valeurs saisies sont des doubles, avant de faire la conversion, en cas dexception elle affecte la valeur 0 tous les champs de saisis. Vrifier lunit de mesure en cours laide de lobjet String prcdemment dclar, afin de faire la conversion adquate pour chaque grandeur (Longueur, Masse, Temprature, Vitesse). Vrifier lid choisi et convertir les autres champs selon ce dernier.
Aprs avoir rcuprer lid du champ en cours de saisie, il ne reste qu convertir les autres champs, dans cet exemple la grandeur sectionne est longueur et la valeur 10 est affecte au deuxime champ, la conversion doit se faire automatiquement. On a choisi le deuxime champ, donc lid du champ est 1 et puisque la grandeur choisie est Longueur, lid 1 va correspondre Miles, il ne reste qu convertir la valeur 10 Miles saisie en Mtre et en Kilomtre laide des relations mentionnes en dessus et les affecter aux deux autres champs.
Travail faire :
1. 2. 3. 4. 5. 6. Cration dune application Java : ConvertisseurApp. Ajout de la classe JFrame : Convertisseur (qui hrite de la classe JFrame). Ajout de deux classes internes pour couter les vnements des JButton et des JTextField. Utilisez les mthodes adquates afin de bien grouper les boutons, ainsi que le reste des objets. Utilisez des boucles pour ajouter chaque objet la classe adquate dcoute. Crez une mthode de conversion, que vous devez appeler dans le corps de la mthode keyReleased de la classe dcoute des JTextField.
TP en Java | Mr. Mohammed Rda Ouassini | Licence gnie informatique | Facult des Sciences et Techniques de Tanger
Page 4