Classes du JDK
Exemples écrits à Genève Introduction: contexte graphique et images(*.pdf) Java et la 2D java 3D complément 3D |
Modèles de gestion d'événements (peu de programmation)
Apprentissage du langage (site Sun) flots d'octets/flots de caractères (liste de classes) Evénements AWT (interfaces et méthodes) Ressources en ligne |
Interface ligne de commande
une trame de classe java squelC.java une trame de classe java, avec programme principal paramètres de la ligne de commande conversions entre numérique(int ou double) et chaine utilitaires d'affichage des utilitaires u.java quelques méthodes utiles (affichage, arrêt, date, saisies clavier) environnement (getProperty) paramètres et environnement environnement.java les paramètres de la méthode 'main' paramètres reçus depuis la commande environnement d'exécution de la machine virtuelle répertoire d'accxueil, de travail ... fontes et capacité de gestion d'images et taille écran, bip fichiers images reconnus et boîte à outils envImage.java format d'images reconnus fontes connues (getDefaultToolkit) dimensions de l'écran en pixel (getDefaultToolkit) émission d'un bip (getDefaultToolkit) .a extraction depuis un zip, d'un fichier .b extraction d'un fichier .gif conversion en fichier png ou jpeg héritage de la classe Random LancerDes.java héritage de la classe Random formatage de valeurs numériques format.java classe MonFormat et méthode formate découpe d'une chaine coupeChaine.java exemple d'une suite de répertoires (CLASSPATH) 1 Utilisation de la méthode split 2 Utilisation de la classe StringTokenizer propriétés des classes dérivées Derivation.java exemple de dérivation Ligne, Rectangle et Ovale dérivent de Figure premières lectures au clavier lectNum.java premières lectures au clavier lecture avec découpage des mots (classe InputStreamReader) lecture d'une ligne (classe BufferedReader) lecture d'une valeur numérique lectures (clavier ou fichier) LireCDF.java classes LireCDF et FlorEntree lectures (clavier ou fichier) lectures de valeur de type String, int ou double lecture du fichier LireCDF.java du répertoire courant. algorithme de parcours d'un carré CMagique.java Parcours du cheval sur un échiquier Autre parcours, avec le même algorithme arbre binaire de recherche (utilisé par EsXmp.java) ABR.java Arbre binaire de recherche (utilisé par EsXmp.java) exemples d'entrées/sorties EsXmp.java exemples d'entrées/sorties cf. une présentation des flots en java) contient les classes FluxCaractère et U utilise les fichiers: U.class, servletssrc.zip, ABR.java Remarques La classe DataInputSream sert à lire des représentatins binaires exemple d'activités (Thread) TxtLentA.java exemple d'activités (Thread). deux textes sont affichés, l'un plus vite que l'autre. exécution d'une application externe LanceAppli.java création de processus externe récupération de sa sortie standard chargement dynamique de classe ChargeClasse.java chargement dynamique d'une classe Java 1. classe située dans un répertoire du 'CLASSPATH' chargée par Class.forName 2. classe située dans un répertoire absent de 'CLASSPATH' chargée par la classe MonChargeur (dérive de ClassLoader) 3. classe accessible par le réseau (via une URL) chargée par URLClassLoader
Applets
applet qui effectue un simple affichage Applet1.java applet qui effectue un simple affichage en utilisant sur Graphics cg: cg.setFont, cg.drawString ... lancement ... une applet animée ElleFuit.java une applet pour passer le temps ... lancement ... communication entre applets appletXmp.java applet toute simple sur Graphics cg, utilisation de: cg.setFont, cg.drawString appletCmd.java une applet qui commande la précédente récupération de valeur depuis la page html récupération de l'autre applet un fichier archive(.jar) contient les classes ... lancement ... de AppletXmp et AppletCmd dessin de disques avec/sans tampon disquesDessinA.java affichages avec/sans tampon (double buffering) dans une 'image' affichage standard dans une autre, dessin dans un tampon image, puis affichage (redéfinition de update(Graphics g) et double buffering) un thread pour déplacer les boules (class DisquesAnimés) un thread pour dessiner (class Dessiner) ... lancement ... carrés magiquues amusement arithmétique une Applet pouvant être exécutée comme application ... lancement ...
Programmation avec interface graphique
squelette de fenêtre et bouton quitter, avec AWT squelF.java squelette de fenêtre et bouton quitter, avec AWT uniquement; exemple avec 'implements WindowListener' fenêtre (géomètre: BorderLayout) au Nord, un panne (contenant deux boutons) fermeture de la fenêtre surveillée (cf. quitterFen()) réflexe sur un bouton une fenêtre JFrame (WindowClosing récupéré) squelFJ.java une fenêtre JFrame (WindowClosing récupéré) des marges dans un panneau (JPanel) composants l'un sous l'autre dans un panneau définition d'un mnémonique pour action sur un bouton boite de dialogue (dérive de JDialog) stdDialog.java une classe boite de dialogue (dérive de JDialog) écoute des événements clavier dans un TextField txtApp.java écoute des événements clavier dans un TextField appui sur R/C récupéré (cf. classe RobotTxtApp frappe d'un caractère standard (cf. classe RobotTxtApp) quelques touches repérées (ALT, F1 ...) fenêtre swing.JFrame afficher deux images (.gif et .jpg premImage.java afficher deux images (.gif et .jpg) utilisation de getToolkit().createImage() utilisation de MediaTracker répertoires courant et accueil une image dans un bouton AWT boutonImage.java chargement d'images. un bouton AWT contient une image le fond de la fenêtre (java.awt.Frame) contient une image sur un click, l'image est cachée/montrée tracés graphiques (un cercle) fCercle.java fenêtre avec un bouton et un cercle, de dimension prédéfinie et à un emplacement défini également. Cete fenêtre est sensible aux événements WindowEvent. Adaptation du tracé à la taille de la fenêtre. Un bouton permet de faire touner le cercle. Sont définis les interfaces ActionListener et WindowListener Tracés graphiques de droites et cercle. une boule dessinée dans une fenêtre uneBoule.java tracés graphiques en rouge et noir (cf. FCercle.java) Deux boutons et une boule dessinée dans une fenêtre. Un bouton permet de fermer la fenêtre (fermeture surveillée); un autre permet de 'faire tourner' la boule. Le rafraichissement est pris en compte par redéfinition de la méthode: paint(Graphics). utilisation d'une JTable xmpJTable.java utilisation d'une JTable voir une initialisation d'un Object[][] une puce saute dans la fenêtre !!! fPuce.java Une puce saute dans la fenêtre !!! utilisation d'une alarme 'javax.swing.Timer' événement et réflexe dans une JList iHMFen.java composant JList, modèle composant, capteur, robot modèle composant, capteur, robot composant: une liste capteur: traite l'événement (demande de tri, mise à jour) robot: appelé par le capteur (ici: tri un tableau) composants: deux listes JList (swing) liste gauche: triée en totalité liste droite: seuls les éléments sélectionnés sont triés une bulle quand le curseur est sur la liste fermeture de fenêtre surveillée (il faut avoir trié les listes) tri d'un tableau de chaînes (méthode Collections.sort()) une boule tourne tous les 0.3s lanceBou.java (cf FenetreA1, Boule1, Animation1) Dans cet exemple + vérification de la conversion d'un argument de la commande + démarrage, interruption et reprise d'une activité (thread) + deux gestionaires d'événement mis en place + rafraichissement du contenu d'une fenêtre + effacer en traçant avec la couleur du fond Une boule tourne tous les 0.3sec.(cf. constante attente) Un bouton arrête ou de relance la rotation de la boule: gestion de Thread avec synchronized Un bouton permet de fermer la fenêtre. disques animés(version awt), double tampon(buffering) disques animés(version swing), double tampon(buffering) disquesDessin.java déplacements de boules(un thread par boule) un thread pour dessiner affichage standard clignotant dans une fenêtre affichage lisse dans une autre: redéfinition de update(Graphics) dessin dans un tampon image, puis affichage (double buffering) arborescence de répertoires choixRepertoire.java Parcours de sous-répertoires + Fenêtre permettant le parcours de répertoires. + Des utilisations d'un objet File dans la méthode main + Méthodes lesRepertoires (après le main) qui fournissent les sous-répertoires d'un répertoire donné. Analogue à la méthode listFiles() de la classe File. boîte de dialogue de choix d'un répertoire dans le parcours d'une arborescence dialChoixRep.java Parcours de sous-répertoires et choix Une fenêtre active une boîte de dialogue modale qui permet le choix d'un répertoire ce que ne permet pas FileSelectionDialog. La programmation n'utilise que java.awt.* utilisation de l'imprimante xmpImpr.java utilisation de l'imprimante impression de fenêtre ou de texte ou tracés graphiques impression de plusieurs pages impression dans une activité (Thread) séparée découper un paragraphe en lignes (LineBreakMeasurer)
Servlets
valeurs reçues d'un formulaire servletRepond adresse du client méthode utilisée récupération noms/valeurs des champs d'un formulaire: getParameterNames getParameterValues information de configuration et de session servletInfo fournit informations d'un client + de configuration (objet ServletConfig) + de session (objet HttpSession) + sur les paramètres (voir méthode nomsValsPar) aide à la génération de code html avec la classe PageHtml
Protocole Http
client et serveur Http etudeHttp.java application qui est à la fois mini serveur Http (classe MonServeur), qui écoute sur le port 8383, et client Http (voir la méthode envoieRqt - classe ReponseHttp - pour l'envoi d'une requête et récupération de la réponse) // // // // // // // // // // // // // // // // // ////
dictionnaire de l'internaute http://www.can.ibm.com/cgi-bin/francais/dico/dictionnaire.cgi?T antialiased -> anti-crénelé border->bordure (pas tres bon pourquoi bord) bookmark ->marque-page = signet bounds -> limites Browser -> Navigateur browse (to) -> explorer card -> fiche change sorter -> trieur de modifications changelist tool-> gestionnaire des modifications changeset -> ensemble des modifications click (to) -> cliquer container -> conteneur Debugger -> Debogueur delete -> supprimer Directory -> Dossier display -> écran, affichage (selon le contexte) do it -> exécute ! (avec le point d'exclamation, pour signifier un ordre ;-) drag & drop -> glisser-déposer edge -> contour/bord (au singulier, car contour=ensemble des bords) flap -> tiroir Folder -> Dossier grab->saisir gradient-> dégradé full screen -> plein écran handle -> poignée heading -> cap holder -> récipient layout-> disposition line feeds -> retour de ligne lock (to) -> verrouiller log (to) ouvrir une session login -> identifiant morph -> morph Objects tool -> Palette d'objets pen trails -> traces de crayon paint palette -> boîte à dessin playfield -> aire de jeu player -> joueur rotate -> pivoter round up -> regrouper save -> enregistrer script -> script (masculin) sibling -> fratrie smooth->lissé/ lisser spawn -> créer ? stack -> pile storyboard -> scénarimage struck out -> barré tabs -> onglets thread (dans le contexte d'un bookmorph) -> fil thumbnail -> vignette tile -> brique unlock -> déverrouiller url -> URL view -> vue viewer -> visionneuse /visualisateur/tableau de commande workspace->espace de travail Remplacer les accents Conseils de présentation du code Ajuster le nombre de chiffres significatifs: classe java.text.DecimalFormat