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 :

interbloquage entre swing et console


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    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
    Par défaut interbloquage entre swing et console
    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
     
    import java.awt.GridBagLayout;
    import javax.swing.JPanel;
    import java.awt.FlowLayout;
    import javax.swing.JTextArea;
    import java.awt.Dimension;
    import javax.swing.JScrollPane;
     
    public class rr extends JPanel {
     
    	private JTextArea getJTextArea() {
    		if (jTextArea == null) {
    			jTextArea = new JTextArea();
    			jTextArea.setPreferredSize(new Dimension(220, 169));
    			jTextArea.setSize(new Dimension(220, 169));
    		}
    		return jTextArea;
    	}
     
    	private JScrollPane getJScrollPane() {
    		if (jScrollPane == null) {
    			jScrollPane = new JScrollPane();
    			jScrollPane.setPreferredSize(new Dimension(200, 164));
    			jScrollPane.setViewportView(getJTextArea());
    		}
    		return jScrollPane;
    	}
     
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
     
    	}
     
     
    	char carCourant;
    	private JTextArea jTextArea = null;
    	private JScrollPane jScrollPane = null;
     
    	void avancerCar() {
    		try {
    			carCourant = (char) System.in.read();
    		} catch (java.io.IOException e) {
    		}
    	}
    	void lireExpression() throws InterruptedException {
        	if (carCourant=='f'){
        	jTextArea.append("forward");
    		avancerCar();repaint();
        		}
        	if (carCourant=='r'){
        	jTextArea.append("right");
        	avancerCar();
        	}
        }
     
     
    	public rr() throws InterruptedException {
    		super();
    		initialize();
    	}
    	private void initialize() throws InterruptedException {
    		this.setSize(300, 200);
    		this.setLayout(new FlowLayout());
    		this.setVisible(true);
    		this.add(getJScrollPane(), null);
    		avancerCar() ; // initialisation du car courant
     
        	while (carCourant!=';'){ 
     
    				lireExpression();//repaint();
     
     
    		}
     
    	}
     
    }
    bon le code ci-dessus

    va ecrire des choses dans un textearea si on ecrit "rfrf;" par exemple dans la console in, suivi de la touche entrée
    mais pourquoi la frame n'apparait pas au moment ou je lance le programme
    alors que si j'enleve la portion de code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    avancerCar() ; // initialisation du car courant
     
        	while (carCourant!=';'){ 
     
    				lireExpression();//repaint();
     
     
    		}
    là la frame apparait des que je lance l'app

    enfin si je mets un while(true) , la frame n'apparaitra jamais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    avancerCar() ; // initialisation du car courant
     
        	while (true){ 
     
    				lireExpression();//repaint();
     
     
    		}
    est-ce que quelq'un peut trouver comment faire pour que la frame réagissent en direct avec la console in, , pour que des que je tape r "right" s'affiche dans la frame, et f "forward" apparait

    merci pour l'aide

  2. #2
    Membre expérimenté
    Profil pro
    Dev NodeJS
    Inscrit en
    Août 2006
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev NodeJS

    Informations forums :
    Inscription : Août 2006
    Messages : 177
    Par défaut
    J'ai bien envie de faire 2 Threads différents...

  3. #3
    Membre éclairé
    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
    Par défaut
    exact ça marche

Discussions similaires

  1. Entrée clavier / GUI / Console
    Par SebastianPx dans le forum Composants
    Réponses: 18
    Dernier message: 26/09/2011, 12h33
  2. entrée dans la console
    Par OLman135 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 23/06/2008, 13h46
  3. Réponses: 9
    Dernier message: 05/09/2007, 14h46
  4. conseil entre Swing, SWT et Visual Editor
    Par 18Marie dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 28/09/2006, 12h06

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