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 :

mauvais rafraichissement d'une JTextArea


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 57
    Par défaut mauvais rafraichissement d'une JTextArea
    Bonjour!

    J'ai utilisé la classe JTextAreaOutputStream proposée par Glob (merci à lui! http://java.developpez.com/sources/?...eamToJTextArea)
    et j'ai suivi ses instructions pour rediriger les flux de la console vers une JFrame:
    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
     
                    JFrame consoleDisplay = new JFrame("Console");
    		JTextArea myConsole = new JTextArea();
    		myConsole.setEditable(false);
    		JTextAreaOutputStream outStream = new JTextAreaOutputStream(myConsole); 
    		JTextAreaOutputStream errStream = new JTextAreaOutputStream(myConsole); 
    		System.setOut(new PrintStream(outStream)); 
    		System.setErr(new PrintStream(errStream));
     
    		JScrollPane scrollBars = new JScrollPane(myConsole, 
    				ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
    				ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
    		consoleDisplay.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
    		consoleDisplay.getContentPane().add(scrollBars);
    		Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
    	    int a = (int) (screen.width*(60./100.));
    	    int b = (int) (screen.height*(30./100.));
    	    consoleDisplay.setSize(a, b);
    		consoleDisplay.setLocation((int) a/10, (int) b/10);
    		consoleDisplay.setVisible(true);
    Tout marche bien... excepté lorsque je réduit la JFrame ou que je fais passer une autre fenêtre devant elle: quand je reviens sur la JFrame, la zone de texte est vide, et les scroll bars ne sont pas utilisables (alors qu'elles fonctionnaient bien avant).


    Pourriez-vous me dire comment faire pour que, lorsque je ré-affiche ma JFrame, la JTextArea et ses scroll bars fonctionnent comme avant?

    Merci!

  2. #2
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 57
    Par défaut
    ça y est ça marche maintenant!

    Depuis j'ai ajouté:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    consoleText.setCaretPosition(consoleText.getDocument().getLength());
    Après chaque écriture dans la console (pour que le scroll pane descende), et il semble que ça a aussi réglé mon problème.

    Si jamais cela arrive à quelqu'un d'autre, la solution est là!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Rafraichissement d'une zone de texte
    Par chabs dans le forum MFC
    Réponses: 1
    Dernier message: 07/05/2005, 17h23
  2. Rafraichissement d'une fenêtre.
    Par GETah dans le forum Agents de placement/Fenêtres
    Réponses: 6
    Dernier message: 21/04/2005, 09h33
  3. Showmodal puis rafraichissement d'une table
    Par navis84 dans le forum Bases de données
    Réponses: 2
    Dernier message: 23/03/2005, 08h09
  4. Mauvais résultat aprés une formule de calcul complexe
    Par poufouille dans le forum Bases de données
    Réponses: 3
    Dernier message: 10/12/2004, 00h12
  5. [MFC] probleme de rafraichissement d'une image
    Par Vestaproman dans le forum MFC
    Réponses: 6
    Dernier message: 09/01/2004, 23h59

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