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 :

besoin d'une aide concernant paint()


Sujet :

AWT/Swing Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 252
    Points : 46
    Points
    46
    Par défaut besoin d'une aide concernant paint()
    ok ci-dessous il y a un programme qui dessine des trais suivant les instructions dans la console d'entrée
    par exemple f5r4f9; lui fera tracer une droite de 50 , tourner a droite de 40 degré et avancer de 90;
    je voudrais que le programme trace 'en direct' sans attendre la fin
    cad je pourrai faire f5 j'appuie sur entree il trace une droite ensuite je tape r4f9 et il continue
    apparement le programme évoque paint() uniquement lorsque la boucle dans init() est terminée , c'est le probleme

    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
     
    import java.awt.Color;
    import java.awt.Graphics;
    import java.util.ArrayList;
    import java.util.List;
     
    import javax.swing.JApplet;
     
     
     
    public class test extends JApplet {
     
    	static List<point> T=new ArrayList<point>();
     
    	static double angle=-Math.PI/2;;
    	static char carCourant;
     
    	static int x,y;
     
        static void avancerCar() {
    		try {
    			carCourant = (char) System.in.read();
    		} catch (java.io.IOException e) {
    		}
    	}
     
        static void lireExpression() throws InterruptedException {
        	if (carCourant=='f'){avancerCar();
        	int v=Integer.parseInt(carCourant+"");
        	x+=10*v*Math.cos(angle);
    		y+=10*v*Math.sin(angle);
    		T.add(new point(x,y));
    		avancerCar();
        		}
        	if (carCourant=='r'){avancerCar();
        	int v=Integer.parseInt(carCourant+"");
        	angle+=10*v*Math.PI/180;
        	avancerCar();
        	}
        }
     
     
        /*
        
        static void lireExpression() throws InterruptedException{
        	
        	if (carCourant=='f'){avancerCar();lireDeplacement();}
        	if (carCourant=='r'){avancerCar();lireRotation();}
        	//else throw new Error (" Carac inattendu : ");
        }
        
        static void lireDeplacement() throws InterruptedException{
        	if (Character.isDigit(carCourant)){
        		x+=10*Integer.parseInt(carCourant+"")*Math.cos(angle);
        		y+=10*Integer.parseInt(carCourant+"")*Math.sin(angle);
        		T.add(new point(x,y));
        		avancerCar();}
        	//else throw new Error (" Carac inattendu : ");
        }
        
        static void lireRotation() throws InterruptedException{
        	if(Character.isDigit(carCourant)){angle+=10*Integer.parseInt(carCourant+"")*Math.PI/180;avancerCar();} 
        	//else throw new Error (" Carac inattendu : ");
        }
        */
     
        public void init(){   
     
        	avancerCar() ; // initialisation du car courant
        	T.add(new point(0,0));x=y=0;
        	while (carCourant != ';'){ 
    			try {
    				lireExpression();
    			} catch (InterruptedException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
     
    		}
    		for (int i=0;i<T.size();i++){
    			System.out.println(T.get(i).abs+".."+T.get(i).ord);
    		}
     
        }
     
        public void paint(Graphics g){
        	g.drawString("bonjour", 100, 100);
        	if (T.size()>1){g.setColor(Color.blue);
    			for (int i=0;i<T.size()-1;i++){
    				g.drawLine(T.get(i).abs, T.get(i).ord, T.get(i+1).abs, T.get(i+1).ord);
    			}
    		}
        }
     
     
     
    }
     class point{
    	int abs,ord;
    	public point(double a,double o){abs=(int) (100+a);ord=(int) (150+o);}
    }

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 252
    Points : 46
    Points
    46
    Par défaut
    bon en fait je voudrais simplement
    que la JApplet trace des segments en meme temps que je tape des trucs dans la console d'entrée

    j'espere que qqn pourra m'aider

Discussions similaires

  1. coucou ! j'aurais besoin d'une aide sur frontpage svp
    Par moustic777 dans le forum Autres
    Réponses: 1
    Dernier message: 18/01/2009, 16h05
  2. J'ai besoin de votre aide "concernant les scripts"
    Par lotfi50 dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 29/09/2008, 23h34
  3. une aide concernant la fusion vb6 et word (publipostage)
    Par aminepop dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 25/06/2008, 13h00
  4. Besoin d'une aide précieuse:
    Par Raideman dans le forum Flash
    Réponses: 5
    Dernier message: 20/04/2007, 15h19

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