IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Penser en Java 2nde édition - Sommaire |  Préface |  Avant-propos | Chapitre : 1  2  3  4  5  6  7  8  9  10  11  12  13  14  15 |  Annexe : A B C D  | Tables des matières - Thinking in Java

  Chapitre 13 - Création de fenêtres & d'Applets

pages : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 

Les solutions des exercices sélectionnés se trouvent dans le document électronique The Thinking in Java Annotated Solution Guide, disponible pour une faible somme depuis www.BruceEckel.com.

  1. Créer une applet/application utilisant la classe Console comme montré dans ce chapitre. Inclure un champ texte et trois boutons. Lorsqu'on appuie sur chaque bouton, faire afficher un texte différent dans le champ texte.
  2. Ajouter une boîte à cocher à l'applet de l'exercice 1, capturer l'événement, et insérer un texte différent dans le champ texte.
  3. Créer une applet/application utilisant Console. Dans la documentation HTML de java.sun.com, trouver le JPasswordField et l'ajouter à ce programme. Si l'utilisateur tape le mot de passe correct, utiliser JOptionPane pour fournir un message de succès à l'utilisateur.
  4. Créer une applet/application utilisant Console, et ajouter tous les composants qui ont une méthode addActionListener() (rechercher celles-ci dans la documentation HTML de java.sun.com; conseil : utiliser l'index). Capturer ces événements et afficher un message approprié pour chacun dans un champ texte.
  5. Créer une applet/application utilisant Console, avec un JButton et un JTextField. Ecrire et attacher le listener approprié de sorte que si le bouton a le focus, les caractères tapés dessus apparaissent dans le JTextField.
  6. Créer une applet/application utilisant Console. Ajouter à la fenêtre principale tous les composants décrits dans ce chapitre, y compris les menus et une boîte de dialogue.
  7. Modifier TextFields.java de sorte que les caractères de t2 gardent la casse qu'ils avaient lorsqu'ils ont été tapés, plutôt que les forcer automatiquement en majuscules.
  8. Rechercher et télécharger un ou plusieurs des environnements de développement de GUI disponibles sur Internet, ou acheter un produit du commerce. Découvrir ce qu'il faut faire pour ajouter Bangbean à cet environnement et pour l'utiliser.
  9. Ajouter Frog.class au fichier manifest comme montré dans ce chapitre, et lancer jar pour créer un fichier JAR contenant à la fois Frog et BangBean. Ensuite, télécharger et installer le BDK de Sun ou utiliser un outil de développement admettant les Beans et ajouter le fichier JAR à votre environnement de manière à pouvoir tester les deux Beans.
  10. Créer un JavaBean appelé Valve qui contient deux propriétés : un boolean appelé on et un int appelé level. Créer un fichier manifest, utiliser jar pour empaqueter le Bean, puis le charger dans la beanbox ou dans un outil de développement acceptant les Beans, de manière à pouvoir le tester.
  11. Modifier MessageBoxes.java de manière à ce qu'il ait un ActionListener individuel pour chaque bouton (au lieu d'un correspondant au texte du bouton).
  12. Surveiller un nouveau type d'événement dans TrackEvent.java en ajoutant le nouveau code de traitement de l'événement. Il faudra découvrir vous-même le type d'événement que vous voulez surveiller.
  13. Créer un nouveau type de bouton hérité de JButton. Chaque fois qu'on appuie sur le bouton, celui-ci doit modifier sa couleur selon une couleur choisie de façon aléatoire. Voir ColorBoxes.java au Chapitre 14 pour un exemple de la manière de générer aléatoirement une valeur de couleur.
  14. Modifier TextPane.java de manière à utiliser un JTextArea à la place du JTextPane.
  15. Modifier Menus.java pour utiliser des boutons radio au lieu de boîtes à cocher dans les menus.
  16. Simplifier List.java en passant le tableau au constructeur et en éliminant l'ajout dynamique d'éléments à la liste.
  17. Modifier SineWave.java pour transformer SineDraw en JavaBean en lui ajoutant des méthodes get et set.
  18. Vous vous souvenez du jouet permettant de faire des dessins avec deux boutons, un qui contrôle le mouvement vertical, et un qui contrôle le mouvement horizontal ? En créer un, en utilisant SineWave.java comme point de départ. A la place des boutons, utiliser des curseurs. Ajouter un bouton d'effacement de l'ensemble du dessin.
  19. Créer un indicateur de progression asymptotique qui ralentit au fur et à mesure qu'il s'approche de la fin. Ajouter un comportement aléatoire de manière à donner l'impression qu'il se remet à accélérer.
  20. Modifier Progress.java de manière à utiliser un listener plutôt que le partage du modèle pour connecter le curseur et la barre de progression.
  21. Suivre les instructions du paragraphe «Empaquetage d'une applet dans un fichier JAR» pour placer TicTacToe.java dans un fichier JAR. Créer une page HTML avec la version brouillonne et compliquée du tag applet, et la modifier pour utiliser le tag archive de manière à utiliser le fichier JAR (conseil : commencer par utiliser la page HTML pour TicTacToe.java qui est fournie avec le code source pour ce livre).
  22. Créer une applet/application utilisant Console. Celle-ci doit avoir trois curseurs, un pour le rouge, un pour le vert et un pour le bleu de java.awt.Color. Le reste du formulaire sera un JPanel qui affiche la couleur fixée par les trois curseurs. Ajouter également des champs textes non modifiables qui indiquent les valeurs courantes des valeurs RGB.
  23. Dans la documentation HTML de javax.swing, rechercher le JColorChooser. Ecrire un programme avec un bouton qui ouvre le sélectionneur de couleur comme un dialogue.
  24. Presque tous les composants Swing sont dérivés de Component, qui a une méthode setCursor(). Rechercher ceci dans la documentation HTML Java . Créer une applet et modifier le curseur selon un des curseurs disponibles dans la classe Cursor.
  25. En prenant comme base ShowAddListeners.java, créer un programme avec toutes les fonctionnalités de ShowMethodsClean.java du Chapitre 12.

[61] Une variante est appelée le principe de l'étonnement minimum, qui dit essentiellement : «ne pas surprendre l'utilisateur».

[62] Ceci est un exemple du modèle de conception [design pattern] appelé la méthode du modèle [template method].

[63] On suppose que le lecteur connaît les bases du HTML. Il n'est pas très difficile à comprendre, et il y a beaucoup de livres et de ressources disponibles.

[64] Cette page (en particulier la partie clsid) semblait bien fonctionner avec le JDK1.2.2 et le JDK1.3rc-1. Cependant il se peut que vous ayez parfois besoin de changer le tag dans le futur. Des détails peuvent être trouvés à java.sun.com.

[65] Selon moi. Et après avoir étudié Swing, vous n'aurez plus envie de perdre votre temps sur les parties plus anciennes.

[66] Comme décrit plus avant, Frame était déjà utilisé par AWT, de sorte que Swing utilise JFrame.

[67] Ceci s'éclaircira après avoir avancé dans ce chapitre. D'abord faire de la référence JApplet un membre static de la classe (au lieu d'une variable locale de main()), et ensuite appeler applet.stop() et applet.destroy() dans WindowAdapter.windowClosing() avant d'appeler System.exit().

[68] Il n'y a pas de MouseMotionEvent bien qu'il semble qu'il devrait y en avoir un. Le cliquage et le déplacement sont combinés dans MouseEvent, de sorte que cette deuxième apparition de MouseEvent dans le tableau n'est pas une erreur.

[69] En Java 1.0/1.1 on ne pouvait pas hériter de l'objet bouton de façon exploitable. C'était un des nombreux défauts de conception.

Ce livre a été écrit par Bruce Eckel ( télécharger la version anglaise : Thinking in java )
Ce chapitre a été traduit par P. Boite ( groupe de traduction )
télécharger la version francaise (PDF) | Commandez le livre en version anglaise (amazon) | télécharger la version anglaise
pages : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 
Penser en Java 2nde édition - Sommaire |  Préface |  Avant-propos | Chapitre : 1  2  3  4  5  6  7  8  9  10  11  12  13  14  15 |  Annexe : A B C D  | Tables des matières - Thinking in Java