Java:mon pb compile mais rien dans le visualiseur

Fermé
domxaline Messages postés 188 Date d'inscription lundi 16 mai 2005 Statut Membre Dernière intervention 7 mars 2018 - 15 nov. 2012 à 14:58
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 15 nov. 2012 à 18:07
Bonjour,
mon pb compile mais rien dans le visualiseur
aidez moi svp
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;
public class MouseRing extends Applet implements MouseListener
{
  private int x=100,y=100;
  private int pauseLength;
  public void init()
  {
	pauseLength=Integer.parseInt(getParameter("PauseLength"));
	setBackground(Color.white);
  }
  public void paint(Graphics g)
  {
	int count=0;
	while(count<100)
	{
	  int radius=5*count;
	  int diameter=2*radius;
	  g.setColor(Color.black);
	  g.drawOval(-radius, y-radius, diameter, diameter);
	  //Draw pause(pauseLength);
	  g.setColor(Color.white);
	  g.drawOval(x-radius, y-radius, diameter, diameter);
	  //Erase!
	  count=count+1;
	}
  }
  private void pause(int howLong)
  {
	  for(int count=0;count<howLong;count++);
  }
  public void mouseClicked(MouseEvent e)
  {
	  x=e.getX();
	  y=e.getY();
	  repaint();
  }
  public void mouseExited(MouseEvent e){}
  public void mouseEntered(MouseEvent e){}
  public void mousePressed(MouseEvent e){}
  public void mouseReleased(MouseEvent e){}
}



A voir également:

4 réponses

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
15 nov. 2012 à 15:09
"rien dans le visualiseur"
Et que t'indiques la console ?

Probablement un gros message d'erreur genre :

java.lang.NumberFormatException: null
	at java.lang.Integer.parseInt(Unknown Source)
	at java.lang.Integer.parseInt(Unknown Source)
	at MouseRing.init(MouseRing.java:10)
	at sun.applet.AppletPanel.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

Ou encore :

java.lang.NumberFormatException: For input string:
	at java.lang.NumberFormatException.forInputString(Unknown Source)
	at java.lang.Integer.parseInt(Unknown Source)
	at java.lang.Integer.parseInt(Unknown Source)
	at MouseRing.init(MouseRing.java:10)
	at sun.applet.AppletPanel.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

Vérifies la valeur que tu donnes à ton paramètre PauseLength !
0
domxaline Messages postés 188 Date d'inscription lundi 16 mai 2005 Statut Membre Dernière intervention 7 mars 2018 10
Modifié par domxaline le 15/11/2012 à 15:23
justement le voilà
java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Integer.java:454)
at java.lang.Integer.parseInt(Integer.java:527)
at MouseRing.init(MouseRing.java:10)
at sun.applet.AppletPanel.run(AppletPanel.java:434)
at java.lang.Thread.run(Thread.java:722)

j'avais écrit ce program dans l'éclipse
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
15 nov. 2012 à 15:33
Quand tu fais getParameter("PauseLength"), cela suppose que tu as mis le paramètre quelque part, or de toute évidence tu n'as pas fais cette configuration...

Dans le menu "Run" > "Run Configurations..." tu as un onglet "Parameters"
Appuies sur le bouton "Add" et spécifies ton paramètre : Name=PauseLength Value=5 (par exemple)
0
domxaline Messages postés 188 Date d'inscription lundi 16 mai 2005 Statut Membre Dernière intervention 7 mars 2018 10
15 nov. 2012 à 16:05
ok merci;ça marche
j'ai une question encore
pourquoi la partie suivante marche pas

le visualiseur montre des quart de cercles,
plusieurs cercles -100 côte à côte

public void mouseClicked(MouseEvent e)
  {
    x=e.getX();
    y=e.getY();
    repaint();
  }
  public void mouseExited(MouseEvent e){}
  public void mouseEntered(MouseEvent e){}
  public void mousePressed(MouseEvent e){}
  public void mouseReleased(MouseEvent e){}

0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
Modifié par KX le 15/11/2012 à 16:55
mouseClicked n'est jamais appelé car le listener n'a jamais été ajouté !

public void init()
{
    pauseLength=Integer.parseInt(getParameter("PauseLength"));
    setBackground(Color.white);
    addMouseListener(this);
}

Cependant, je ne trouve pas ça propre d'avoir en même extends Applet et implements MouseListener, car on mélange le conteneur (Applet) et les évènements sur les contenus (Listener) dans un même objet, et on perd toute logique de programmation objet !

Je préconise plutôt ceci :

import java.applet.Applet;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

public class MouseRing extends Applet
{
    private static final long serialVersionUID = 1;
    
    private int x,y;
    private int pauseLength;

    public void init()
    {
        pauseLength=Integer.parseInt(getParameter("PauseLength"));
        setBackground(Color.white);
        
        x = getWidth()/2;
        y = getHeight()/2;
        
        addMouseListener(new MouseListener()
        {
            @Override
            public void mouseClicked(MouseEvent e)
            {
                x=e.getX();
                y=e.getY();
                repaint();
            }
        
            public void mouseExited(MouseEvent e){}
            public void mouseEntered(MouseEvent e){}
            public void mousePressed(MouseEvent e){}
            public void mouseReleased(MouseEvent e){}
        });
    }
    
    private void pause()
    {
        try 
        { 
            Thread.sleep(pauseLength);
        } 
        catch (InterruptedException e) 
        {
        }
    }
  
    @Override
    public void paint(final Graphics g)
    {
        super.paint(g);
        
        int maxX = Math.max(x,getHeight()-x);
        int maxY = Math.max(y,getWidth()-y);
        int maxR = (int) Math.sqrt(maxX*maxX+maxY*maxY);
        
        for (int radius=0; radius<maxR; radius+=5)
        {
            int diameter = 2*radius;
            
            g.setColor(Color.black);
            g.drawOval(x-radius, y-radius, diameter, diameter);
            
            pause();
            
            //g.setColor(Color.white);
            //g.drawOval(x-radius, y-radius, diameter, diameter);
        }
    }
}
0
domxaline Messages postés 188 Date d'inscription lundi 16 mai 2005 Statut Membre Dernière intervention 7 mars 2018 10
15 nov. 2012 à 17:51
merci pour votre aide mais votre prg marche pas
il y a des erreurs:
java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Integer.java:454)
at java.lang.Integer.parseInt(Integer.java:527)
at MouseRing.init(MouseRing.java:15)
at sun.applet.AppletPanel.run(AppletPanel.java:434)
at java.lang.Thread.run(Thread.java:722)
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
15 nov. 2012 à 18:07
Mais c'est le même problème que tout à l'heure !
Il faut que tu configures ton paramètre "PauseLength"
0