Défilement horizontal de texte dans un jtextfield.

Soyez le premier à donner votre avis sur cette source.

Vue 14 189 fois - Téléchargée 1 005 fois

Description

Suite à une demande sur le chat, voici une simple solution pour défiler de texte Horizontalement dans un JTextField.
La solution n?est pas la meilleure peut être, mais elle fonctionne ;). Elle utilise un thread avec sleep + interface persol.
Dsl pour les commentaires, pas beaucoup 2 temps cette période et c?est très vite fait.
J?espère qu?elle répondre à ses besoins et pourra finir sa machine à café :p.
Bn courage.

Source / Exemple :


/**

  • Classe : Animation.java
  • author : davidauche
  • Date : 2-05-2006
    • /
public class Animation extends Thread { private MyInterface myInterface = null; private String txtAfficher=""; private String buf=""; private int vitesse = 400; private int counter=0; /**
  • Constructeurs
  • /
Animation (){} Animation(String text){ this.txtAfficher = text; } /**
  • addMyListener
    • /
public void addMyListener(MyInterface listener){ this.myInterface = listener; } /**
  • run
    • /
public void run() { while (true) { try { Thread.sleep(vitesse); // faire une pause au thread. }catch (InterruptedException e) {}; if(counter==txtAfficher.length() ) counter =0; counter += 1; buf = txtAfficher.substring(counter) + " - " + txtAfficher.substring(0,counter) ; this.afficher(buf); } } /**
  • afficher : afficher le texte dans JTextField via notre interface.
    • /
public void afficher(String text){ myInterface.afficherText("Voila un test : " + text ); } /**
  • setTextAfficher : changer le texte à afficher.
    • /
public void setTextAfficher(String text){ this.txtAfficher = text; } /**
  • setVitesse : changer la vitesse de défilement.
  • En millisecond, c'est la valeur donnée à sleep d'un Thread
  • pour faire une pause.
    • /
public void setVitesse(int vitesse){ this.vitesse = vitesse; } /**
  • reset : counter = 0. recommencer le défilement.
    • /
public void reset(){ this.counter = 0; afficher(this.txtAfficher); } } /*###########################################################*/ /**
  • MyInterface.java
  • Une seule méthode : afficherText
  • author : davidauche
  • Date : 02-05-2006
    • /
public interface MyInterface { public void afficherText(String text); } /*###########################################################*/ /**
  • Classe Defilement.java
  • author : davidauche
  • Date : 02-05-2006
    • /
import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Defilement extends JFrame implements MyInterface { private JTextField txtField; private JButton btnStart, btnPause, btnReset; private Animation animation= new Animation("Défilement Horizontal de texte dans un JTextField."); /**
  • Constructeur
    • /
public Defilement(){ super ("Défilement Horizontal de texte dans un JTextField"); setSize(450,100); txtField = new JTextField(); btnStart = new JButton("Start"); btnPause = new JButton("Pause"); btnReset = new JButton("Reset"); animation.addMyListener(this); animation.setVitesse(300); // modifier la vitesse. animation.start(); /* boutton Strat */ btnStart.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { animation.resume(); } }); /* boutton Pause */ btnPause.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { animation.suspend(); } }); /* boutton Reset */ btnReset.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { animation.reset(); } }); txtField.setFont(new Font("Arial",Font.BOLD,13)) ; txtField.setForeground(Color.RED); /* ajouter les composants */ this.setLayout(new GridLayout(2,0)); JPanel contBtn = new JPanel(); contBtn.setLayout(new GridLayout(0,3)); contBtn.add(btnStart); contBtn.add(btnPause); contBtn.add(btnReset); this.getContentPane().add(txtField); this.getContentPane().add(contBtn); setVisible(true); } /**
  • methode afficherText de notre interface
    • /
public void afficherText(String text){ txtField.setText(text); } /**
  • le main pour les tests
    • /
public static void main (String Arg[]){ Defilement def = new Defilement(); } }

Conclusion :


C'est juste pour aider le mec ni + ni -.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.