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 :

Probleme sous Firefox


Sujet :

Applets Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12
    Par défaut Probleme sous Firefox
    Bonjour,

    J'ai un probleme avec une applet sous firefox ( testée avec plusieur versions de firefox ).

    Mon applet s'affiche mais si je reload la page en utilisant le bouton refresh de firefox l'applet disparait sans me laisser de message.

    A savoir j'ai testé l'applet sur IE et ca marche niquel, de meme sous chrome.

    Je ne vois vraiment pas comment resoudre ce probleme.

    Merci.

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    si tu recharge la page, l'applet est stoppée puis redémarrée vias les méthodes adhoc dans la classe applet. La séquence est donc, pour ton applet

    • construction
    • init
    • start
    • stop
    • start
    • stop
    • destroy


    Elle ne passe dont plus par le init. après la première fois As-tu bien implémenté ta méthode start en tenant comtpe de ça?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12
    Par défaut
    Bonjour,

    Suite a ton post j'ai implemente la methode start() dans laquel je set mes parametres mais rien ne change. Firefox ne ce rafraichit pas corretement et donc l'applet disparait.

    Je te met le code des fois qu'il y ai quelque chose qui te choque.


    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
     
    public class Counter extends Applet {
     private Integer startValue;
     private Integer segonde;
     private Integer mlsegonde;
     private Integer IC;
     
     private int Value;
     private int inc;
     private int seg;
     private int mls;
     private int[][] at = {{3,3,22,33},{31,3,22,33},{57,3,22,33},{85,3,22,33},{111,3,22,33},{139,3,22,33},{165,3,22,33},{193,3,22,33},{219,3,22,33},{247,3,22,33}};
     private String startDate;
     private String increment;
     private SimpleDateFormat form;
     private Image image;
     private Image bg;
     
     public Counter()
     {
    	setFont(new Font("Courrier",Font.BOLD,14));
    	setForeground(Color.black);
     }
     public void init()
     {
     
    }
     
    public void start()
    {
    	Value = startValue.parseInt(getParameter("startValue"));
    	startDate = getParameter("startDate");
    	increment = getParameter("increment");
    	image = getImage(getCodeBase(), getParameter("fontImage"));
    	bg = getImage(getCodeBase(), getParameter("bgImage"));
    	mls = mlsegonde.parseInt(increment.substring(increment.indexOf(":")+1, increment.length()));
    	seg = segonde.parseInt(increment.substring(increment.indexOf(" ")+1, increment.indexOf(":")));
    	inc = IC.parseInt(increment.substring(0, increment.indexOf(" ")));
    }
     
     
     
     public void update(Graphics g) {
    	g.clearRect(0, 0, getSize().width, getSize().height);
    	g.drawImage(bg, 0, 0, this);
    	init();
    	repaint();
     }
     
     
     
     public void paint(Graphics g)
     
     {
    	int Tdate;
    	int Tstart;
    	int Tres;	
     
    	form = new SimpleDateFormat("dd MMM yyyy kk:mm:ss z");
    	Date date= new Date();
    	try {
    		date = form.parse(startDate);
    	} catch (ParseException ex) {
    	}
    	String pli="";
    	Date tmp = new Date();
    	if (date.before(tmp)) {
    		Tdate = (int) tmp.getTime();
    		Tstart = (int) date.getTime();
    		Tres = Tdate - Tstart;
    		Value += inc * (Tres / (seg*1000 + mls));
    	}
    	else
    	{
    		while (!date.equals(tmp))
    			tmp = new Date();
    	}
    	boolean i = true;
    	String ch1 = "";
    	while (i) {
    		ch1 = ch1.valueOf(Value);
    		g.clearRect(0, 0, getSize().width, getSize().height);
    		g.drawImage(bg, 0, 0, this);
    		int posx = getSize().width/2 - (ch1.length()*((at[0][2] / 2) + 2)) - 5;
    		int posy = (getSize().height/2) - (at[0][3]/2);
    		if (ch1.length() != 0)
    		{
    			for (int o = 0; o < ch1.length(); o++) {
    				if (ch1.charAt(o) == '0') {
    					g.drawImage(image, posx, posy, (posx+at[0][2]), (posy+at[0][3]), at[0][0], at[0][1], (at[0][0]+at[0][2]), (at[0][1]+at[0][3]), this);
    					posx += at[0][2];
    		}
    		else
    		{
    			g.drawImage(image, posx, posy, (posx+at[0][2]), (posy+at[0][3]), at[0][0], at[0][1], (at[0][0]+at[0][2]), (at[0][1]+at[0][3]), this);
    			posx += at[0][2];
    		}
    		Value += inc;
    		try {Thread.sleep(seg * 1000 + mls);}
    		catch (InterruptedException signal) {g.drawString("FAIL!", 10, 15);}
    	}
     } 
    }
    Merci.

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    tu ne sort presque jamais de ta boucle paint et tu fait des sleep dedans, c'est une erreur. On ne peux pas monopoliser comme ça le thread EDT! Firefox démarre probablement une deuxième fois ton applet, mais celle ci n'a jamais l'opportunité de se dessiner, car la première monopolise l'EDT.

    voir les FAQs gui de developpez -> Event Dispatch Thread pour plus de détail!

Discussions similaires

  1. probleme de pop up sous firefox
    Par guy2004 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 21/10/2006, 13h22
  2. Probleme affichage code sous IE mais pas sous Firefox
    Par misirlou dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 20/04/2006, 14h18
  3. Réponses: 10
    Dernier message: 21/03/2006, 15h24
  4. probleme sous firefox
    Par pimpmyride dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 09/03/2006, 23h20
  5. [CSS][Firefox] Probleme de footer sous firefox
    Par oknam dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 20/09/2005, 20h51

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