Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : mon ticker ne marche pas [ Divers / Applets ] (bessamira)

mardi 22 juillet 2008 à 14:07:40 | mon ticker ne marche pas

bessamira

Bonjour a tout le monde,
j'ai fait une applet java d'un ticker j'ecrit le code mais toujours ne marche plus,je travaille sous eclipse,mon code est le suivant quand je fait le run je trouve des erreurs
s'il vous plait est ce quelqu'un peut m'aider et merci d'avance.
/************************************************************/
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.Color;
import java.awt.Image;
import java.awt.Event;
import java.awt.Cursor;

import java.io.InputStream ;
import java.io.DataInputStream ;

import java.util.Vector ;
import java.util.Enumeration ;

import java.net.URL;

// pour LiveConnect...
//import netscape.javascript.JSObject;

public class aTicker extends java.applet.Applet implements Runnable
{
    // Declare the controlling thread for the applet
    public    Vector dFile = new Vector( 5, 5 );

    Thread scrollmessage;

    private char        cSep = ';'   ;
    String sMess ;
    boolean bLoc = false ;

    // Declare the details for the message to be displayed
    int s_h            ;    // Longueur du message
    int iMax        ;    // Nombre de Message
    int iActif = 999;    // Message Actif
    int iCur   = -1 ;

    int cBk = 0x000000 ;        // Nombre de Message

    // Variables controlling the display of the message
    int     x_coord,        // present x-position
            y_coord,        // present y-position
            speed,            // scrolling amount
            iPas,            // (integer) pas entre 2 messages
            delay;            // scrolling speed



    // for storing the dimensions of the applet
    int aWidth, aHeight;



    // for double buffering to prevent flicker
    Image offScreenImage;
    Graphics offScreen;

    // Font control variables
    Font wFont1;                // Message
    Font wFont2;                // Message Actif
    int cT1 = 0xFFFFFF ;        // Message
    int cT2 = 0xFFFF00 ;        // Message Actif
    FontMetrics wM;

    // Applet initialisation routine

    public void init() {

        // Temporary storage space
        String temp;

        // get the speed of the scrolling
        temp = getParameter("speed");
        speed= (temp==null) ? 1 : Integer.parseInt( temp );

        temp = getParameter("delay");
        delay= (temp==null) ? 20 : Integer.parseInt( temp );

        temp = getParameter("pas");
        iPas = (temp==null) ? 20 : Integer.parseInt( temp );

        temp = getParameter("bgcolor");
        cBk = (temp==null) ? 0x202080 : Integer.parseInt( temp );

        temp = getParameter("local");
        if (temp != null) bLoc = true ;

        temp = getParameter("cSep");
        if (temp != null) cSep = temp.charAt(0) ;

        temp = getParameter("Font1") ;
        if (temp == null)
            temp = "Arail, 10, 1, " + 0xFFFFFF + " " ;

        setFont(1, temp) ;

        temp = getParameter("Font2") ;
        if (temp == null)
            temp = "Arail, 10, 2, " + 0xFFFF00 + " " ;

        setFont(2, temp) ;

        // fichier
        temp = getParameter("file");
        if (temp==null)
            temp="mess.txt" ;

        wM = getFontMetrics (wFont1);

        readFile(temp) ;


    } // end of init


    public void setFont(int z, String s) {
        int j = 0 ;
        int k = 0 ;
        int i ;

        String sF = "" ;
        int iS = 10 ;
        int iT = 1 ;

        int iC = 0xFFFFFF ;

        String p ;

        while (true) {
            i = s.indexOf(',', j) ;
            if (i > 0)
                p = new String(s.substring(j, i).trim()) ;
            else
                p = new String(s.substring(j).trim()) ;

            if ((i>-1) || (p.length() > 0)) {
                if ( k == 0) sF   = new String(p) ;
                if ( k == 1) iS   = Integer.parseInt(p) ;
                if ( k == 2) iT   = Integer.parseInt(p) ;
                if ( k == 3) iC   = Integer.parseInt(p) ;
                k++ ;
            }

            if (i == -1)  break ;
            else j = i + 1 ;
        }
        
        Font f = new Font(sF, iT, iS) ;
        if (f == null)    f = getFont() ;

        if (z == 1) {
            wFont1 = f ;
            cT1 = iC ;
        }
        else {
            wFont2 = f ;
            cT2 = iC ;
        }

    }

    public void readFile(String f) {
        dFile.removeAllElements()    ;
        iMax = 0;

        // open stream to a file which name is expressed relative to the document URL
        DataInputStream fis = null ;

        if (bLoc == false)
            try {
                fis = new DataInputStream( (new URL( getCodeBase(), f )).openStream() ) ;
            } catch( Exception e ) {
                 fis = null ;
                bLoc = true ;
            }

         rp s = null ;

         String sS ;
         int iL = 0 ;

         // parser loop
         while ( true ) {
            s = new rp();
 
            if (bLoc) {
                sS = getParameter(f + iL) ;
                iL++ ;
            }
            else
                try {
                    sS = fis.readLine() ;
                } catch( Exception e ) {
                        break ;
                }    

            if (s.get( sS, cSep, "_new", 0xFFFFFF, 0xFFFF00 )) {
                if (s.sM != null ) {
                    dFile.addElement( s );
                    iMax++ ;
                }
            }
            else
                break ;
         }

         iActif = 0 ;
         sMess = ((rp)dFile.elementAt(iActif)).sM ;
         s_h = - wM.stringWidth(sMess) ;
    }


    // control the starting of the applet
    public void start() {
        // start the thread
        scrollmessage = new Thread(this);
        scrollmessage.start();

    } // end of start



    // control the stopping of the applet
    public void stop() {
        scrollmessage.stop();
    } // end of stop


    // control the running of the applet
    public void run() {
        // set the priority of the thread to low
        Thread.currentThread().setPriority(Thread.MIN_PRIORITY);

        // loop continuously
        while(true) {
            // values for working out the constant delay
            long thisTick, waitTick;

            // calculate the tick to wait for
            waitTick = System.currentTimeMillis() + delay;

            // update the screen
            x_coord -= speed;

            if (x_coord<s_h) {
                    iActif++; // Load next line
                    x_coord += -s_h + iPas;
                    if (iActif >= iMax) iActif = 0 ;

                    sMess = ((rp)dFile.elementAt(iActif)).sM ;
                    s_h = -wM.stringWidth(sMess) ;
            }

            repaint ();

            thisTick = System.currentTimeMillis();

            if ( thisTick<waitTick ) {
                try {
                    Thread.currentThread().sleep( (int)(waitTick-thisTick));
                } catch (InterruptedException e) {}
            }

        }     // end of loop

      } // end of run

  public boolean mouseMove(Event e, int x, int y){
         int i = iActif ;
        int l = x_coord ;
        int lt ;

        int iZ = -1 ;
         while (true) {
            lt = wM.stringWidth( ((rp)dFile.elementAt(i)).sM ) ;
            if ((x > l) && (x < (l+lt))) {
                iZ = i ;
                break ;
            }
            else {
                l = l + iPas + lt ;
                i++ ;
                if (i >= iMax) i = 0 ;
            }

            if (l > aWidth)
                break ;
      }
      if (iZ != iCur) {
        if (iZ == -1)
            this.setCursor(new Cursor(0));
        else
            this.setCursor(new Cursor(12));
        
        iCur = iZ ;
        if (iCur == -1) {
            showStatus("") ;
        }
        else {

            if (((rp)dFile.elementAt(iCur)).sH == null) {
                if (((rp)dFile.elementAt(iCur)).sU != null)
                    showStatus(((rp)dFile.elementAt(iCur)).sU) ;
            }
            else
                showStatus(((rp)dFile.elementAt(iCur)).sH) ;
        }

        repaint() ;
      }

      return true ;
  }

  public boolean mouseDown(Event e, int x, int y){
      if (iCur == -1) return true ;
      
      if ( ((rp)dFile.elementAt(iCur)).sU != null) {
        URL clickDest ;
        try{
                if (((rp)dFile.elementAt(iCur)).sT.equals("_script")){    
                   JSObject.getWindow (this).eval (((rp)dFile.elementAt(iCur)).sU );
                }
                else {
                    if ( ((rp)dFile.elementAt(iCur)).sU.charAt(0) == '.')
                        clickDest = new URL(getCodeBase(), ((rp)dFile.elementAt(iCur)).sU );
                    else
                        clickDest = new URL(((rp)dFile.elementAt(iCur)).sU);
                    getAppletContext().showDocument(clickDest, ((rp)dFile.elementAt(iCur)).sT );
                }

        }catch(Exception z) {
                showStatus("Bad URL! =" + ((rp)dFile.elementAt(iCur)).sU );
        }                                        
      }

      return(true);
   }

  public boolean mouseEnter(Event e, int x, int y){
        try {
            scrollmessage.suspend() ;
        } catch (Exception e2) {}
//        showStatus(((rd2)dFile.elementAt(iActif)).sU);
        return(true);
  }

  public boolean mouseExit(Event e, int x, int y){
      try {
        scrollmessage.resume() ;
      } catch (Exception e2) {}
      iCur = -1 ;
      showStatus("");
      return(true);
  }



    // Called when the applet needs to be painted
    // calls the flicker free updating system
    public void paint (Graphics g) {
        update(g);
    } // end of paint


    // Draw the applet without flicker
    public synchronized void update(Graphics g) {
        // get the size of the applet
        int aW = size().width ;
        int aH = size().height ;

        if ((aWidth != aW) || (aHeight != aH) || (offScreen == null)) {
            // initialise the double buffering screen
            try {
                offScreenImage = createImage (aW, aH);
                offScreen = offScreenImage.getGraphics ();
            } catch (Exception e) {
                offScreen = null;
            }
            aWidth  = aW ;
            aHeight = aH ;

            y_coord = aHeight/2 + (wM.getHeight()-wM.getDescent())/2;
            x_coord = aWidth;
        }

        if (offScreen!=null) {
            paintApplet(offScreen);
            g.drawImage(offScreenImage,0,0,this);
        }  else
            paintApplet(g);
    } // end of update


    // Paint the applet into whatever image
    public void paintApplet(Graphics g) {

        g.clearRect(0,0,aWidth,aHeight);
        g.setColor ( new Color ( cBk ) );

        g.fillRect(0, 0, aWidth, aHeight ) ;

         int i = iActif ;
        int l = x_coord ;

         while (true) {
            if (iCur == i) {
                g.setColor ( new Color ( cT2 ) );
                g.setFont( wFont2 ) ;
            }
            else {
                g.setColor ( new Color ( cT1 ) );
                g.setFont( wFont1 ) ;
            }

            g.drawString ( ((rp)dFile.elementAt(i)).sM , l, y_coord ) ;

            l += iPas + wM.stringWidth( ((rp)dFile.elementAt(i)).sM ) ;

            i++ ;
            if (i >= iMax) i = 0 ;

            if (l > aWidth)
                break ;
      }

    } // end of paintApplet
}
 // end aTicker


class rp extends Object {

    public String    sU    = null ;    // dest URL
    public String   sM  = null ;    // message
    public String   sT  = null ;    // target
    public String   sH  = null ;    // Help
    public int        l1  ;            // Color std
    public int      l2  ;            // Color active
    public int      lg  = -1 ;

    public boolean get( String st, char cSep, String starg, int d1, int d2 ) {
        int i = 0 ;
        int j = 0 ;
        int k = 0 ;

        String p ;

        if (st == null) return false ;


        sM = null ;
        sU = "" ;
        sT = starg ;
        sH = null ;
        l1 = d1 ;
        l2 = d2 ;
        lg = -1 ;

        while (true) {
            i = st.indexOf(cSep, j) ;
            if (i > 0)
                p = new String(st.substring(j, i).trim()) ;
            else
                p = new String(st.substring(j).trim()) ;


            if ((i>-1) || (p.length() > 0)) {
                if ( k == 0) sM   = new String(p) ;
                if ( k == 1) sU   = new String(p) ;
                if (p.length() > 0) {
                    if (p.charAt(0) =='?')
                        sH = p.substring(1) ;
                    else {
                        if ( k == 2) sT   = new String(p) ;
                        if ( k == 3) l1   = Integer.parseInt(p) ;
                        if ( k == 4) l2   = Integer.parseInt(p) ;
                    }
                }
                k++ ;
            }

            if (i == -1)  break ;
            else j = i + 1 ;
        }

        if (sU.equals("--")) sU = null ;
        return ( k > 0 ) ;
    }

}
/***********************************/



mardi 22 juillet 2008 à 15:34:27 | Re : mon ticker ne marche pas

laurent1024

Bonjour
Commence par nous donner les erreurs que tu as, on ne va pas les inventer.

Cdt

mercredi 23 juillet 2008 à 10:07:48 | Re : mon ticker ne marche pas

bessamira

bonjour Laurent,
merci pour ta réponse bon les erreurs sont les suivants:
java.lang.ArrayIndexOutOfBoundsException: 0 >= 0
    at java.util.Vector.elementAt(Unknown Source)
    at aTicker.readFile(aTicker.java:207)  c'est a dire au niveau" sMess = ((rp)dFile.elementAt(iActif)).sM ;"

et
    at aTicker.init(aTicker.java:109)c'est a dire au niveau de la ligne"        readFile(temp) ;"
    at sun.applet.AppletPanel.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
et merci pour votre aide.


mercredi 23 juillet 2008 à 10:29:44 | Re : mon ticker ne marche pas

laurent1024

Cela veux dire que tu veux acceder à la case 0 d'un vecteur qui n'a pas d'éléments. Avant de faire un elementAt(), il faut vérifier la taille de ton vecteur. Tu peux également vérifier ta fonction qui remplit le vecteur
                try {
                    sS = fis.readLine() ;
                } catch( Exception e ) {
                        break ; ==> s'il y a une exception ici, ton vecteur peut ne pas etre remplit, tu arrive ensuite sur la ligne qui te provoque l'erreur,
                }   

cdt

mercredi 23 juillet 2008 à 12:01:35 | Re : mon ticker ne marche pas

bessamira

merci laurent,
je fera ce que tu m'a dis.


mercredi 23 juillet 2008 à 12:04:31 | Re : mon ticker ne marche pas

bessamira

Est ce que tu essayer le code sur votre machine?

mercredi 23 juillet 2008 à 12:45:01 | Re : mon ticker ne marche pas

Twinuts

Membre Club Administrateur CodeS-SourceS
Salut,

merci de ne valider que les réponse qui résolvent le problème, et non TOUTES les réponse que l'on te fait... pour rappel si tu flags un message comme étant valide et résolvant ton problème tu auras beaucoup moins de gens qui vont se pencher sur ton problème ...




------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO

mercredi 23 juillet 2008 à 12:56:44 | Re : mon ticker ne marche pas

bessamira

salut Laurent
le code toujours ne marche pas.

mercredi 23 juillet 2008 à 13:01:14 | Re : mon ticker ne marche pas

bessamira

salut Tminuts,
merci pour votre conseil.
et donc vous pouvez m'aider pour mon probleme et merci d'avance.

lundi 28 juillet 2008 à 12:08:16 | inserer une application dans un jpanel?

bessamira

Bonjour,
j'ai fait une application en java  et je veux l'inserer dans un JPanel.
est ce quelqu'un peut m'aider et merci d'avance.


1 2

Cette discussion est classé dans : public, int, string, temp, if


Répondre à ce message

Sujets en rapport avec ce message

applet print [ par neo1260 ] Salut, c encore moi avec mon probléme d'applet, j'ai laissé tombé la classe interne mais il me met une erreude compilation au niveau du book.append (p HELP HELP HELP !!!!!!!! [ par poupoule00 ] Boonjour et merci d'avance de me repondre. J'ai un projet a faire en jCreator qui consiste a entrer une date(jourdelasemaine, numero du jour, mois, an JTable éditeur de couleur [ par jc_romeo ] BonjourJe voudrais faire une JTable avec le fait que quand on clique sur une des cases on puisse changer sa couleur de fond.j'ai donc créer la classe: char et if [ par Skyffer3 ] public class Tableauchar { public static void main(String args[]) { String a = "allo"; int b = a.length(); char[] x = new char[b]; for(int i=0 ; i ch jtable [ par KERKENNAH ] bonjour;je suis un etudiant et je besoin d'aide a propos de jtable je veux ajouter 2 boutton à mon travail un qui ajoute une ligne dans jtable et l'au Gros probleme pour faire un tableau aider moi svp [ par djterrence ] j ai reesayer d'incorporer un tableau en fait ce que je veux faire c'est lorsqu 'il demande de taper le type on tape 1 par exemple puis apres lors de affectation variable dans un tableau [ par developvbdebut ] bonjour tout le mondeJ'ai un problème, je n'arrive pas à affecter des variable dans une JTableVoici la class tableaupreveimport java.awt.*;import java interface graphique swing [ par franfr57 ] Je vais vous décrire ma fenêtre que je désire faire :nom de la fenêtre : Portail des anciens étudiantsavec 6 onglets en haut de l'écran : Gestion des Question de philosophie "héritages" [ par omcougar ] Bonjour, Je m'amuse en ce moment sur les transferts de données... Pour définir la tête des mes trames j'ai créé une classe statique TrameData que enco besoin d'aide pour mon programme java [ par pouyoudu17 ] Bonjour,J'ai fait un programme java pour faire un annuaire mais il y a quelques erreurs.<b


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,281 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.