// Figure 17.3 : LireFichierDeServeur.java // Ce programme fait appel à un JEditorPane pour afficher // le contenu d'un fichier présent sur un serveur Web. // Packages de noyau Java. import java.awt.*; import java.awt.event.*; //import java.net.*; import java.io.*; // Packages d'extension Java. import javax.swing.*; import javax.swing.event.*; public class LireFichierDeServeur extends JFrame { private JTextField champEntree; private JEditorPane zoneContenu; // Préparer la GUI. public LireFichierDeServeur() { super( "Navigateur Web élémentaire" ); Container conteneur = getContentPane(); // Créer le champ champEntree et inscrire son écouteur. champEntree = new JTextField( "Entrez ici l'URL du fichier" ); champEntree.addActionListener( new ActionListener() { // Obtenir le document spécifié par l'utilisateur. public void actionPerformed( ActionEvent evenement ){ lireLaPage( evenement.getActionCommand() ); } } ); conteneur.add( champEntree, BorderLayout.NORTH ); // Créer la zoneContenu et inscrire l'écouteur d'HyperlinkEvent. zoneContenu = new JEditorPane(); zoneContenu.setEditable( false ); zoneContenu.addHyperlinkListener( new HyperlinkListener() { // Si l'utilisateur a cliqué sur un lien hypertexte, // alors aller à la page spécifiée. public void hyperlinkUpdate( HyperlinkEvent evenement ) { if ( evenement.getEventType() == HyperlinkEvent.EventType.ACTIVATED ) lireLaPage( evenement.getURL().toString() ); } } ); conteneur.add( new JScrollPane( zoneContenu ), BorderLayout.CENTER ); setSize( 400, 300 ); setVisible( true ); } // Charger le document; changer le curseur de souris pour marquer l'état. private void lireLaPage( String emplacement ) { // Changer le curseur de souris en WAIT_CURSOR. setCursor( Cursor.getPredefinedCursor( Cursor.WAIT_CURSOR ) ); // Charger le document dans zoneContenu et afficher son emplacement // dans champEntree. try { zoneContenu.setPage( emplacement ); champEntree.setText( emplacement ); } // Traiter les problèmes éventuels au chargement du document. catch ( IOException ioException ) { JOptionPane.showMessageDialog( this, "Erreur à la récupération de l’URL spécifiée", "URL incorrecte", JOptionPane.ERROR_MESSAGE ); } setCursor( Cursor.getPredefinedCursor( Cursor.DEFAULT_CURSOR ) ); } // Exécution de l'application. public static void main( String args[] ) { LireFichierDeServeur application = new LireFichierDeServeur(); application.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); } } // fin classe LireFichierDeServeur /****************************************************************************** * (C) Copyright 2002 par Deitel & Associates, Inc. et Prentice Hall * * Tous droits réservés. * * * * RENONCIATION: Les auteurs et l'éditeur de cet ouvrage ont fait tous * * les efforts pour préparer ce livre et les programmes qu'il contient, * * y compris dans l'élaboration, la recherche et les contrôles sur l'effica- * * cité des théories et programmes. Les auteurs et l'éditeur n'offrent * * aucune garantie de quelque ordre que ce soit, expresse ou implicite, * * pour ce qui concerne ces programmes ni la documentation présentés * * dans ce livre. L'auteur et l'éditeur ne pourront être tenus pour * * responsables de tout dommage accessoire ou indirect, lié à ou causé * * par la fourniture, la performance ou l'utilisation de ces programmes. * *****************************************************************************/