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

AWT/Swing Java Discussion :

Texte qui défile de haut en bas.


Sujet :

AWT/Swing Java

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    406
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 406
    Points : 279
    Points
    279
    Par défaut Texte qui défile de haut en bas.
    Bonjour,
    J'ai une classe qui affiche à l'écran un texte qui défile de haut en bas.
    Malheureusement, le texte ne défile pas sur tout le JPanel mais sur seulement peu de pixels, je dirai qu'il défile sur la hauteur du JLabel et je n'arrive pas à le faire défiler sur tout le JPanel.
    Voici mon code, j'espère que vous aurez des suggestions :
    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
     
    import java.awt.Dimension;
    import java.awt.FontMetrics;
    import java.awt.Graphics;
    import java.awt.Insets;
    import java.util.Timer;
    import java.util.TimerTask;
     
    import javax.swing.JLabel;
    import javax.swing.JPanel;
     
    public class PanelTexteDéfilant extends JPanel
    {
    	public PanelTexteDéfilant()
    	{
    		final class JScrollingText extends JLabel 
    		{ 
    			private int speed;
    			private int period; 
    			private int offset; 
    			private int y;
     
    			// Méthodes surchargées = 3 Constructeurs
    			public JScrollingText(String text,int speed) {this(text,speed,100);}
     
    			public JScrollingText(String text,int speed,int period) {this(text,speed,period,0);}
     
    			public JScrollingText(String text,int speed,int period,int offset) {super(text); this.speed = speed; this.period = period; this.offset = offset;}
     
    			public void paintComponent(Graphics g) 
    			{
    			    if (isOpaque()) {
    			        g.setColor(getBackground());
    			        g.fillRect(0,0,getHeight(),getWidth());
    			    }
    			    g.setColor(getForeground());
     
    			    FontMetrics fm = g.getFontMetrics();
    			    Insets insets = getInsets();
     
    			    int width = getWidth() - (insets.top + insets.bottom);
    			    int height = getHeight() - (insets.left + insets.right);
     
    			    int textHeight = fm.getHeight(); 
    			    if (height < textHeight) {
    			        height = textHeight + offset;
    			    }
    			    y %= height;
     
    			    int textX = insets.left + (width - fm.stringWidth(getText()))/2; // Centre le texte
    			    int textY = insets.top + y; 
     
    			    g.drawString(getText(),textX,textY);
    			    g.drawString(getText(),textX ,textY + (speed > 0 ? - height : height));
    			}
     
    			public void start() 
    			{
    			    Timer timer = new Timer();
    			    TimerTask task = new TimerTask() {
    			       public void run() {
    			            y = y - speed;
    			            repaint();
    			        }
    			    };
    			    timer.scheduleAtFixedRate(task,0,period);
    			}  
    		}
    		JScrollingText scrollingText1 = new JScrollingText("Coucou",-1);
    	    scrollingText1.start();
    	    setPreferredSize(new Dimension(200,330));
    	    add(scrollingText1);
    	}
    }
    Merci...

  2. #2
    Membre émérite
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Points : 2 582
    Points
    2 582
    Par défaut
    Rajoute ceci quelque part dans le constructeur de PanelTexteDéfilant (en évitant peut être l'accent : je ne suis pas contre les accents dans les fichiers sources, mais comme les noms des classes génèrent des noms de fichiers, que les systèmes d'exploitations ne sont pas tous à la norme unicode pour ce qui concerne les noms de fichiers, c'est un peu risqué) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    setLayout(new BorderLayout());
    Mieux que Google, utilisez Sur Java spécialisé sur la plate-forme java !
    Pour réaliser vos applications Java dans le cadre de prestations, forfait, conseil, contactez-moi en message privé.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    406
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 406
    Points : 279
    Points
    279
    Par défaut
    Merci beaucoup, ca marche nikel

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

Discussions similaires

  1. Texte qui défile "sacadé"
    Par skeut dans le forum Flash
    Réponses: 3
    Dernier message: 22/11/2009, 23h53
  2. [XL-2007] Texte qui défile
    Par eliot.raymond dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 09/05/2009, 14h41
  3. texte qui défile
    Par Nayila dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/08/2008, 13h58
  4. [Technique] Texte qui défile avec temps de pause
    Par AnGe7s dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 15/04/2007, 01h57
  5. Comment Insérer un texte qui défile???
    Par Jayceblaster dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 18/04/2006, 13h25

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