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 :

Problème au niveau du repaint() dans l'applet


Sujet :

Applets Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 37
    Par défaut Problème au niveau du repaint() dans l'applet
    Bonjour tout le monde, je suis en train d'apprendre le java à la fac ..
    J'ai fait une applet avec 10 traits de tailles aléatoires, et ensuite une fonction de trie. Je dois trier suivant la taille du trait générer (la fonction trie fonctionne correctement!) par contre, quand je réactualise l'applet (avec repaint()) je n'arrive pas à réafficher les traits dans l'ordre croissant de leur taille.

    J'ai donc deux classes : une trait(pour dessiner un trait) et une Rect (pour l'applet et le reste)

    Quelqu'un serait il me dire où pourrait se trouver mon erreur?
    Je dois également créer un bouton dans mon applet, et quand je clique dessus je dois lancer le tri.. Je dois utiliser button pour créer le bouton, mais au niveau de la souris .. je ne sais pas du tout . Quelqu'un serait me dire ce que je dois utiliser.

    Merci d'avance.

    Code:


    import java.awt.Color;
    import java.awt.Graphics;

    public class Trait
    {
    public int x, y; //x et y coordonnées du trait
    public int taille; //taille du trait

    public Trait(int x,int y,int dim) //constructeur
    {
    this.x = x; //permet d'initialiser les coordonnées x et y
    this.y = y;
    taille = dim; //initialise la taille
    }

    public void dessiner (Graphics g)
    {
    g.setColor(Color.blue); //trait de couleur bleu
    g.drawLine(x,y,x+taille,y); //dessiner un trait de coordonnées x et y de départ
    // et (x+taille) et y d'arrivées
    }
    }



    import java.applet.*;
    import java.awt.*;

    public class Rect extends Applet implements Runnable
    {

    private Thread t; //création d'un thread t
    private Trait tab[]; //création d'un tableau tab de type Traie

    public Rect() //constructeur
    {
    int taille;
    tab = new Trait[10] ; //initialisation du tableau tab de Traie de taille 10
    t = new Thread(this);
    int y=10;
    for(int i=0;i<10;i++) //on génére 10 traits
    {
    taille = (int) (Math.random() * 400 +1); //pour la taille aléatoire d'un traie
    y = y + 5;
    tab[i]= new Trait(20,y,taille);
    }
    t.start();

    }

    public void paint (Graphics g)
    {
    setSize(500, 200); //taille de l'applet
    g.drawRect(10,10,getSize().width - 20 ,getSize().height - 20); //pour dessiner un rectangle

    for(int i=0;i<10;i++) //pour les 10 traits du tableau tab
    {
    tab[i].dessiner(g); //on dessine un trait
    System.out.println(tab[i].taille); //affichage triselection
    }

    }


    public void triselection() //tri
    {
    int i,j,m;

    for(i=0;i<(tab.length-1);i++)
    {
    m = i;
    for(j=i+1;j<tab.length;j++)
    if(tab[j].taille < tab[m].taille)
    m = j;
    if (m != i)
    { Trait c = tab[i];
    tab[i] = tab[m];
    tab[m] = c;
    }

    }
    }



    public void run()
    {
    triselection(); //lance le tri sélection
    repaint(); //permet de réactualiser l'applet
    }
    }

  2. #2
    Membre habitué
    Inscrit en
    Janvier 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Janvier 2006
    Messages : 13
    Par défaut
    bon je vais déjà répondre pour le button.

    Il faut lui ajouter un listener. Alors, tu pourrais bien utiliser le mouseListener mais celà ne servirait pas à grand chose, je te conseille de créer une classe implémentant l'interface ActionListener.

    Vu que tu apprends ça à la fac, je ne vais pas tout te détailler, je vais te laisser chercher comment l'implémenter.

    juste pour ton button, tu devras lui faire un :

    monButton.addListener(new MonListener());;


    Pour tes traits, ce n'est pas bien compliqué non plus. Il suffit de voir que lorsque tu redessines tes traits, tu ne modifies pas leurs coordonnées, par conséquent, ils sont redessiner au même endroit qu'avant.

Discussions similaires

  1. Problème integration d'un jar dans une applet
    Par gornayel dans le forum Applets
    Réponses: 1
    Dernier message: 12/06/2012, 12h54
  2. problème de path dans une applet
    Par sliderman dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 05/06/2007, 13h08
  3. Problème OutOfMemory dans une applet
    Par hotkebab99 dans le forum Applets
    Réponses: 1
    Dernier message: 25/01/2006, 11h36
  4. [Débutant(e)] problème dans un applet
    Par Tootsi dans le forum Applets
    Réponses: 7
    Dernier message: 25/11/2005, 23h09
  5. [Debutant] Problème de sécurité dans un applet
    Par peaceinpal dans le forum Applets
    Réponses: 3
    Dernier message: 09/09/2004, 21h56

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