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

Interfaces Graphiques en Java Discussion :

Animation trop rapide


Sujet :

Interfaces Graphiques en Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 25
    Points : 12
    Points
    12
    Par défaut Animation trop rapide
    Bonjour,
    pour commencer je ne suis pas français donc il peut y avoir des fautes d'orthographe et de grammaire.
    J'ai fais le code suivant avec éclipse dont la fonction est d'afficher des couleurs aléatoires dans le quart d' une fenêtre toutes les x secondes.
    Mais il va tellement vite qu' ils les montre toutes à la fois.
    Quelqu'un pourrait-il m'aider? (Je suis un noob vous l' avez sans doute remarqué dut a la qualité désastreuse du code)

    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
    104
    105
    106
    import java.awt.AWTException;
    import java.awt.Color;
    import java.awt.Container;
    import java.awt.Graphics;
    import java.awt.Robot;
     
    import javax.management.relation.Role;
    import javax.swing.JFrame;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JMenuItem;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
     
    public class quenivelquieres extends JFrame {
     
     
     
    private static final long serialVersionUID = 8585544783492126617L;
    public static quenivelquieres app;	
    public static final int APP_WIDTH = 500;
    public static final int APP_HEIGHT = 500;
    private JMenuBar Barra;
    private JMenu Archivo;
    private JMenuItem salir;
    public static void main(String[] args) { 
    app = new quenivelquieres ();
    app.show();
    }
     
     
    public void paint(Graphics gfx) {
    setLayout(null);
    setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
    Barra = new JMenuBar();
    Archivo = new JMenu ("Archivo");
    Barra.add(Archivo);
    salir = new JMenuItem ("Salir");
    Archivo.add(salir);
    salir.addActionListener(
    new ActionListener() { 
    public void actionPerformed( ActionEvent evento ){
    System.exit( 0 );
    }
    }
    );
    this.setJMenuBar(Barra);
    setVisible(true);
     
    Container workArea = this.getContentPane();
    Graphics workAreaGfx = workArea.getGraphics();
    int z = 0;
    while (z<1000){
     
    int x = (int) (Math.random()*10+1);
     
     
     
    if(x==5){x= x-1;}
    if(x==6){x= x-3;}//3
    if(x==7){x= x-5;}//2
    if(x==8){x= x-7;}//1
    if(x==9){x= x-5;}//4
     
    if(x==10){x= x-9;}//1
     
     
     
    if(x==1){
    workAreaGfx.setColor(Color.blue);
    int width = workArea.getWidth();
    int height = workArea.getHeight();
    workAreaGfx.fillRect(0,0, width/2, height/2);}
    if(x==2){
    workAreaGfx.setColor(Color.red);
    int width = workArea.getWidth();
    int height = workArea.getHeight();
    workAreaGfx.fillRect(250,250, width,height);}
    if(x==3){
    workAreaGfx.setColor(Color.yellow);
    int width = workArea.getWidth();
    int height = workArea.getHeight();
    workAreaGfx.fillRect(250,0, width/2, height/2);}
    if(x==4){
    workAreaGfx.setColor(Color.green);
    int width = workArea.getWidth();
    int height = workArea.getHeight();
    workAreaGfx.fillRect(0,250, width/2, height/2);} 
     
     
    z+=1;
    this.setSize(APP_WIDTH, APP_HEIGHT);
    this.setTitle("Dale al Azúl");
     
     
     
    } 
     
     
     
    }
     
     
     
    }

  2. #2
    Membre averti Avatar de omarcisses
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 227
    Points : 314
    Points
    314
    Par défaut
    Ajoute a la fin de ta boucle while ceci pour voir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Thread.sleep(1000);

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 25
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par omarcisses Voir le message
    Ajoute a la fin de ta boucle while ceci pour voir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Thread.sleep(1000);
    il me dit surround cath/try... je sais pas l'utiliser.

    Merci d' avance

  4. #4
    Membre averti Avatar de omarcisses
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 227
    Points : 314
    Points
    314
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    try{
        Thread.sleep(1000);
        }catch(InterruptedException e){}

  5. #5
    Expert éminent sénior
    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 : 45
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    On ne peux pas faire d'animation à l'intérieur de la méthode paint. Cette méthode doit se dérouler rapidement sous peine de givrer l'interface graphique. Tant qu'elle dessine, ton interface graphique ne peux rien faire. C'est à toi donc, dans un thread séparé (ton main par exemple) de changer régulièrement un paramètre de couleur (un champ de ta classe) et de demander à ta fenêtre de se redessiner (méthode repaint())

Discussions similaires

  1. Déplacements trop rapides
    Par Exedor dans le forum Ogre
    Réponses: 8
    Dernier message: 09/08/2006, 09h43
  2. Traitement trop rapide
    Par Ludog35 dans le forum Access
    Réponses: 2
    Dernier message: 19/06/2006, 15h25
  3. [VBA-E] Liaisons qui ne se mettent pas à jour (macro trop rapide?)
    Par minikisskool dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 21/11/2005, 10h36
  4. Horloge 2x trop rapide!
    Par rgy834 dans le forum Administration système
    Réponses: 6
    Dernier message: 24/10/2005, 22h08
  5. Compte à rebours trop rapide
    Par Anduriel dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/06/2005, 21h57

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