Exception in thread "main"

[Résolu]
Signaler
Messages postés
11
Date d'inscription
mercredi 26 mai 2010
Statut
Membre
Dernière intervention
16 juin 2011
-
Messages postés
11
Date d'inscription
mercredi 26 mai 2010
Statut
Membre
Dernière intervention
16 juin 2011
-
salut,je suis vraiment debutante en java,j' un code qui manque le main mais je sais pas comment l'ajouter voici le code:
import javax.swing.JApplet;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Point;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

// On déclare que la classe Dessin "est un" JApplet. En plus, on
// déclare que notre classe Dessin implémente toutes les
// fonctionnalités d'un "MouseListener". C'est a dire, qu'elle
// implémente toutes les méthodes nécessaires pour gérer les clics de
// la souris. Regardez la documentation de "MouseListener" dans la
// doc Java.
public class Dessin26032011 extends JApplet implements MouseListener
{
// Le tableau contenant les cercles
Cercle cercles[] = new Cercle[100];
// Nombre de cercles dans le tableau
int nbCercles=0;

// Cette méthode "init" est toujours appelé automatiquement par
// JApplet après le démarrage du programme. On pourra y mettre le
// code dont on a besoin pour initialiser notre programme. Dans
// notre cas on voudra juste initialiser la gestion de la souris.
public void init()
{
System.out.println("Bonjour, je m'initialise");

// Ici on dit à l'appelet qu'on veut recevoir les évènements
// souris. A partir de maintenant JApplet sait que s'il y a un
// évènement de souris, il peut appeler des méthodes de la
// classe Dessin associés à l'objet courant (this).
addMouseListener(this);
}

// Toutes les méthodes qui suivent sont associés à l'interface
// MouseListener. Les 4 premières ne nous intéressent pas pour
// l'instant (mais elles doivent obligatoirement être présentes ..
// sinon, on ne serait pas conforme à l'interface MouseListener).
// Toutes ces méthodes vont être appelés automatiquement par
// JApplet si les évènements correspondants surviennent.
public void mouseEntered (MouseEvent e) {;}
public void mouseExited (MouseEvent e) {;}
public void mousePressed (MouseEvent e) {;}
public void mouseReleased(MouseEvent e) {;}
public void mouseClicked (MouseEvent e)
{
System.out.println("Position:" + e.getX() + "," + e.getY());
cercles[nbCercles] = new Cercle(e.getX(), e.getY(), 20);
cercles[nbCercles].couleur = new Color( (27*nbCercles)% 255, (58*nbCercles)%255, (238*nbCercles)%255);
++nbCercles;
repaint();
}
public void paint (Graphics g)
{
// effacer avant de tout redessiner
g.clearRect(0,0,getWidth(),getHeight());
for(int i=0; i<10; i++)
{
cercles[i].dessiner(g);
}
}
}
thanx in advance
A voir également:

14 réponses

Messages postés
76
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
2 août 2018

rajoute une fonction Main à la fin:

public static void main(){
Dessin26032011 monDessin = new Dessin26032011();
monDessin.init(); //Je sais Pas si il y en a besoin
}

Bonjour,

Le point d'entrée d'un applet est la méthode init et la méthode main public static void main(String[] args) est inutile.

Noter que le tableau args (String[] args) ou d'un tout autre non, est un paramètre obligatoire.

Donc comment exécuter un applet ?

En créant un fichier .html (par exemple avec le bloc notes) dans le dossier de travail et dont le contenu minimum est:



Sauvegarder par exemple sous le nom MonApplet.html ou mieux LeNomDeLaClasseApplet.html

Quand c'est fait; ouvrir le dossier et double cliquer sur la ligne du .html créé pour visualiser la page.

Éventuellement repondre au message de sécurité pour accepter ou non.

On peut également tester l'Applet à l'aide de l'utilitaire appletviewer se trouvant dans le dossier bin du jdk:

appletvewer NomDuHtmlCréé.html

Cordialement,
...\ Dan /...

Re,

1)Tu ouvres le bloc notes
2)Tu saisi:


Avec largeurDeLaFenetre et hauteurDeLaFenetre qui sont les dimenssions de la fenêtre où seront dessinés les cercles

3)Tu sauvegardes sous le nom Dessin26032011.html
4)Tu ouvres le dossier où a été sauvegardé Dessin26032011.html
5)Tu double clique sur la ligne Dessin26032011.html

6) s'il y a un message de sécurité tu cliques sur voir les options (à la fin de la ligne du message) puis tu cliques sur la première ligne de la petite fenêtre qui s'ouvre, une autre fenêtre s'ouvre te demandant de confirmer.
7)Tu confirmes
8)Tu me dis ce qu'il se passe.

Bien entendu il faut que Dessin26032011 soit complilé et sans erreurs.

...\ Dan /...
Messages postés
11
Date d'inscription
mercredi 26 mai 2010
Statut
Membre
Dernière intervention
16 juin 2011

salemou 3alaykom
merci eccsupe de m'avoir aider mais malheureusement ça ne marche pas
merci danimo vous aussi,mais cette solution me choque un peu car je ne l'ai pas compri ,je suis vraiment debutant
Messages postés
11
Date d'inscription
mercredi 26 mai 2010
Statut
Membre
Dernière intervention
16 juin 2011

est ce qu4il est necessaire d'utiliser le html?
Messages postés
11
Date d'inscription
mercredi 26 mai 2010
Statut
Membre
Dernière intervention
16 juin 2011

il n'y a aucune ligne écrite sachons que j'ai remarquer que le fichier Dessin26032011.html se trouve comme un fichier firefox

Ok,

Ce message étant un message de sécurité d'InternetExplorer c'est normal
qu'il ne sorte pas Si tu es sous firefox.

Às-tu éssayé en cliquant sur Dessin26032011.html

Sais-tu quel Firefox est utilisé ?


...\ Dan /...

Je ne peux pas tester car dans la méthode
 
      public void mouseClicked (MouseEvent e)
      { 
         System.out.println("Position:" + e.getX() + "," + e.getY()); 
         cercles[nbCercles] = new Cercle(e.getX(), e.getY(), 20); //ici <<<<<<<
         cercles[nbCercles].couleur = new Color( (27*nbCercles)% 255, (58*nbCercles)%255, (238*nbCercles)%255); 
         ++nbCercles; 
         repaint(); 
      }

on fait appel à la classe Cercle
cercles[nbCercles] = new Cercle(e.getX(), e.getY(), 20); //ici <<<<<<<

Or j'ai aussi un classe Cercle qui bien entendu ne convient pas.

Peux tu, si c'est possible, me donner le code de cette classe pour que je puisse tester ?


...\ Dan /...
Messages postés
11
Date d'inscription
mercredi 26 mai 2010
Statut
Membre
Dernière intervention
16 juin 2011

merci bien Dan pour vos reponses,
voici le code de la classe cercle:
import java.awt.Graphics;
import java.awt.Point;

class Cercle
{
Point centre;
int rayon;

Cercle(int x, int y, int r)
{
centre = new Point(x,y);
rayon = r;
}

void dessiner(Graphics g)
{
g.drawOval(centre.x - rayon, centre.y - rayon, 2*rayon, 2*rayon);
}
}
pour le firefox j'utilise la version 4.0 ou si vous voulez je peut mettre enternet explorer mon navigateur par defaut
merci encore une fois
Messages postés
11
Date d'inscription
mercredi 26 mai 2010
Statut
Membre
Dernière intervention
16 juin 2011

SALEM
j'ai modifié un peut le code de dessin2603.html il faut mettre les doubles cotes selon un exemple que j'ai trouvé:
Here it is:
This is where HelloWorld.class runs.


la page html s'execute maintenant mais elle n'affiche que le message suivant

A Java applet example
Here it is:
hors c'est insuffisant,le code est supposé traiter des cercles

Tout dépend de ce que dois afficher


...\ Dan /...

Tout dépend de ce que dois afficher HelloWorld


...\ Dan /...

Désolé je ne pouvais pas te répondre hier !

Oui, ce serait bien que tu travailles avec IE comme moi.

Maintenant que j'ai la classe Cercle j'ai testé et c'est ok.

La classe Cercle est utilisée sans changement.

J'ai modifié un peu la classe Dessin.

J'ai créé le .html suivant:




Noter qu'on n'est pas obligé de mettre des "

La classe Dessin:

   import javax.swing.JApplet; 
   import java.awt.Color; 
   import java.awt.Graphics; 
   import java.awt.Point; 
   import java.awt.event.MouseEvent; 
   import java.awt.event.MouseListener; 

// On déclare que la classe Dessin "est un" JApplet. En plus, on 
// déclare que notre classe Dessin implémente toutes les 
// fonctionnalités d'un "MouseListener". C'est a dire, qu'elle 
// implémente toutes les méthodes nécessaires pour gérer les clics de 
// la souris. Regardez la documentation de "MouseListener" dans la 
// doc Java. 
   public class Dessin26032011 extends JApplet implements MouseListener 
   { 
   // Le tableau contenant les cercles
      Cercle cercles[] = new Cercle[20];
      //int[] cercles = new int[20];
   // Nombre de cercles dans le tableau
      int nbCercles=0; 
      Color couleur;
      boolean pf = true; // première fois
   
   // Cette méthode "init" est toujours appelé automatiquement par 
   // JApplet après le démarrage du programme. On pourra y mettre le 
   // code dont on a besoin pour initialiser notre programme. Dans 
   // notre cas on voudra juste initialiser la gestion de la souris. 
      public void init() 
      { 
         System.out.println("Bonjour, je m'initialise"); 
      
      // Ici on dit à l'appelet qu'on veut recevoir les évènements 
      // souris. A partir de maintenant JApplet sait que s'il y a un 
      // évènement de souris, il peut appeler des méthodes de la 
      // classe Dessin associés à l'objet courant (this). 
         addMouseListener(this); 
      } 
   
   // Toutes les méthodes qui suivent sont associés à l'interface 
   // MouseListener. Les 4 premières ne nous intéressent pas pour 
   // l'instant (mais elles doivent obligatoirement être présentes .. 
   // sinon, on ne serait pas conforme à l'interface MouseListener). 
   // Toutes ces méthodes vont être appelés automatiquement par 
   // JApplet si les évènements correspondants surviennent. 
      public void mouseEntered (MouseEvent e) {;} 
      public void mouseExited (MouseEvent e) {;} 
      public void mousePressed (MouseEvent e) {;} 
      public void mouseReleased(MouseEvent e) {;} 
      public void mouseClicked (MouseEvent e) 
      {
         System.out.println("Position:" + e.getX() + "," + e.getY());
         cercles[nbCercles] = new Cercle(e.getX(), e.getY(), 20);
         
         couleur = new Color( (27*nbCercles)% 255, (58*nbCercles)%255, (238*nbCercles)%255);   
         nbCercles++; 
         repaint();
      }
      
      public void paint (Graphics g) 
      {
      // si on veut que les cercles restent avec la couleur
      // du moment où il ont été créé, ilfaut supprimer les 
      // 2 lignes suivantes:
      // effacer avant de tout redessiner 
         //g.clearRect(0,0,getWidth(),getHeight());
      
      // ajouté cette petite indication:  
         g.setColor(couleur);
         g.drawString("Cliquez n'importe où dans la fenêtre.", 8, 10);
         g.drawString("(Dans les limites des dimensions données dans le .html)", 8, 20);
         
      /* // Temoin indiquant la couleur utilisée au moment du clique:
         g.fillOval(2, 20, 15, 15); // remplissage (fill)
         g.drawOval(2, 20, 15, 15);    // affichage */
      
        cercles[nbCercles -1].dessiner(g);
      } 
   }


Tu peux tester et me dire si c'est ok ?

Cordialement,

...\ Dan /...
Messages postés
11
Date d'inscription
mercredi 26 mai 2010
Statut
Membre
Dernière intervention
16 juin 2011

essalemou 3alaykom,
sincerement,c'est tres gentil de votre part,merci bien de m'avoir aider,vraiment vous avez été tres helpful
UN GRAND MERCI Dan