IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Applets Java Discussion :

[debutant] applet qui affiche les propriétés de java


Sujet :

Applets Java

  1. #1
    Membre régulier Avatar de charlix
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 285
    Points : 107
    Points
    107
    Par défaut [debutant] applet qui affiche les propriétés de java
    Bonjour,

    Je vous explique en deux mots ce que je souhaite faire. Je dois faire une démonstration en java pour mon école d'informatique et je souhaite faire une applet qui, lorsqu'on la lance sur une station, affiche les propriétés essentielles concernant java sur la station.
    Je souhaiterais la lancer depuis un navigateur pour que l'applet m'affiche toutes ces données. Et lorsqu'on lance la page HTML, je souhaite avoir un certificat qui demande l'autorisation de lancer l'applet.

    J'ai téléchargé un code qui fait un truc du même genre mais je souhaiterais en faire une moi même du début jusqu'à la fin car je suis débutant.

    Je ne sais pas si c'est un peu dure pour commencer un appronfondissement de java mais bon, cela m'interesse beaucoup.

    Donc si vous aviez quelques conseils pour commencer, cela m'aiderait énormément car j'ai un peu de mal, j'ai déjà posté un autre sujet avec un problème qui je pense ne doit être pas si compliqué que cela.

    Merci d'avance

    Charlie
    Il faut toujours avoir l'air d'être con si on veut pouvoir paraitre intelligent de temps en temps.

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    La liste des infos de ta jvm sont accessibles via ses properties:


    system.getProperties()


    Pour ce qui est du certificat, tu dois d'abord en générer un avec l'outil keytool fourni avec le jdk, puis signer ton jar avec l'outil signjar. Une fois cela fait, le certificat sera associé à l'applet et quand t'essaiera de la lancer il le vérifiera et le présentera à l'utilisateur

  3. #3
    Membre régulier Avatar de charlix
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 285
    Points : 107
    Points
    107
    Par défaut
    Slt,

    Bon j'ai commencé à coder ma démonstration même si je n'arrive pas encore à afficher mes applets dans mon browser.

    J'ai une erreur avec la méthode paint().

    la console me met :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException
    	at appletdemo.Applet.paint(Applet.java:81)
    	at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
    	at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
    	at javax.swing.RepaintManager.seqPaintDirtyRegions(Unknown Source)
    	at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknown Source)
    	at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    	at java.awt.EventQueue.dispatchEvent(Unknown Source)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.run(Unknown Source)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    package appletdemo;
    
    import java.io.*;
    import java.awt.Graphics;
    import javax.swing.JApplet;
    import java.net.*;
    import java.util.Enumeration;
    
    
    /**
     * Applet qui affiche la propriété java.version		//Javadoc
     * et lit le contenu d'un fichier distant.
     */
    
    public class Applet extends JApplet {
      /**
    	 * 		//sérialisation pour la classe Demonstration
    	 */
    	private static final long serialVersionUID = 1L; 
    	private int positionVerticale; //pour l'affichage
        private URL urlFichier; //url du fichier à afficher
    
      private void afficherPropriete(String nomPropriete, Graphics g) { //g représente l'emplacement de la pageWeb où l'applet s'affichera
        try {
          g.drawString("Propriété : " + nomPropriete + " = "
                       + System.getProperty(nomPropriete), 
                       0, positionVerticale);
        }
        catch(SecurityException e) {
          g.drawString("Propriété : " + nomPropriete 
                       + " ne peut être affichée",
                       0, positionVerticale);
        }
        positionVerticale += 20;
      }
    
      public void init() {//la méthode init() est héritée de la classe Applet
    			   //la méthode init() est exécutée seulement quand l'applet est lancé pour la première fois
    		  
    		    URL urlDocBase = getDocumentBase();
    		    System.out.println("URL de base du document : " + urlDocBase);
    		    String nomFichier = getParameter("fichier");
    		    try {
    		      urlFichier = new URL(urlDocBase, nomFichier);
    		      System.out.println("URL du fichier à lire : " + urlFichier);
    		    }
    		    catch(MalformedURLException e) {
    		      System.err.println(e);
    		    }
      }
    
    
    
      public void paint(Graphics g) { //la méthode paint() est héritée de la classe Applet
    	  							  //la méthode paint dessine l'applet dans la page Web
        positionVerticale = 20;		  
        afficherPropriete("java.version", g);
        //afficherPropriete("java.home", g);
        //afficherPropriete("user.name", g);
        //afficherPropriete("user.home", g);
    
        //Affichage de toutes les propriétés
        try {
          Enumeration enumProprietes = System.getProperties().propertyNames();
          while(enumProprietes.hasMoreElements()) {
            String nomPropriete = (String)enumProprietes.nextElement();
            System.out.println("Propriété : " + nomPropriete);
            afficherPropriete(nomPropriete, g);
          }
        }
        catch(SecurityException e) {
          System.out.println("Impossible de lire la liste des propriétés");
        }
    
        //Affichage du contenu du fichier
        String ligne;
        g.drawString("3 premières lignes de " + urlFichier + " :", 
                     0, positionVerticale); //Pixel où commencera l'affichage (0,position verticale)
        positionVerticale += 20;
        try {
         BufferedReader br = new BufferedReader(new InputStreamReader(urlFichier.openStream()));
          try {
            for (int i = 0; i < 3; i++) {
              ligne = br.readLine();
              if (ligne == null) break;
              g.drawString(ligne, 0, positionVerticale);
              positionVerticale += 20;
            }
          }
          catch (IOException e) {
            System.err.println("Erreur pendant la lecture des lignes");
          }
          finally {
            try {
              br.close();
            }
            catch(IOException e) {}
          }
        }
        catch(IOException e) {
          System.err.println("Problème pour ouvrir le fichier : "
                             + urlFichier);
        }
      }
    }
    La ligne 81 correspond à la ligne en rouge.

    Merci d'avance
    Il faut toujours avoir l'air d'être con si on veut pouvoir paraitre intelligent de temps en temps.

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Comme le dit le message d'erreur, tu essaie d'accéder au contenu d'un null (méthode/propriété) sur cette ligne là.

    comme le seul objet dont tu appelle une méthode est urlFichier, c'est que urlFichier est null

  5. #5
    Membre régulier Avatar de charlix
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 285
    Points : 107
    Points
    107
    Par défaut
    J'ai un peu changé le code de mon applet. Mais j'ai toujours l'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException
    	at appletdemo.Applet.paint(Applet.java:86)
    	at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
    	at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
    	at javax.swing.RepaintManager.seqPaintDirtyRegions(Unknown Source)
    	at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknown Source)
    	at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    	at java.awt.EventQueue.dispatchEvent(Unknown Source)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.run(Unknown Source)
    Comment faudrait-il que je procède pour que les propriétés soient affichées dans l'applet dans le fichier HTML comme dans l'appletviewer ?
    Il faut toujours avoir l'air d'être con si on veut pouvoir paraitre intelligent de temps en temps.

  6. #6
    Membre régulier Avatar de charlix
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 285
    Points : 107
    Points
    107
    Par défaut
    Bonjour,

    En faite, j'ai réussi à faire ce que je voulais et je n'ais pu d'erreur. Mais je ne vais pas afficher toutes ces propriétés dans la page HTML. Car les applets ne sont pas là pour faire ce genre de chose.

    Mais là je vais essayer de signé l'applet pour qu'elle demande l'autorisation d'un certificat dans le fichier HTML.

    Et pour ma démonstration, je vais montrer que certaines propriété, comme par exemple user.name, ont besoin d'une autorisation pour être affichées.

    Si j'ai d'autres soucis, je vous le ferez savoir.

    merci de ton aide tchize
    Il faut toujours avoir l'air d'être con si on veut pouvoir paraitre intelligent de temps en temps.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD-2010] Insérer un bouton qui affiche les propriétés
    Par iratihel dans le forum VBA Word
    Réponses: 3
    Dernier message: 28/02/2013, 12h46
  2. [MySQL 3.23.41]Requete qui affiche les 6 derniers mois
    Par nanarou dans le forum Langage SQL
    Réponses: 3
    Dernier message: 04/09/2006, 19h07
  3. Un ls récursif qui affiche les chemins absolus
    Par Michaël dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 10/07/2006, 17h04
  4. [SQL Server] Requete qui affiche les doublons
    Par Vesta dans le forum Langage SQL
    Réponses: 11
    Dernier message: 26/05/2006, 13h42
  5. Réponses: 4
    Dernier message: 29/11/2004, 16h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo