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

avec Java Discussion :

Afficher du texte dans un container en continu


Sujet :

avec Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 15
    Points : 11
    Points
    11
    Par défaut Afficher du texte dans un container en continu
    Bonjour à tous je débute en Java.
    Je me suis constitué ce code qui fonctionne et qui me permet d'afficher deux texte dans la console mais pas dans la fenêtre vide qui s'affiche.

    Je voudrai pouvoir afficher ces deux sources dans deux containers différents dans ma fenêtre.

    Merci de votre aide


    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
     
    //Ceci importe la classe Scanner du package java.util
     
    import java.util.Scanner; 
     
    //Ceci importe toutes les classes du package java.util
     
    import java.util.*;
    import java.io.*;
    import javax.swing.JFrame;
    import java.awt.Color;
    import java.awt.FlowLayout;
     
    import javax.swing.JPanel;
     
     
     
     
     
     
    public class test {
     
    	public static void main(String[] args){
    		 JFrame fenetre = new JFrame();
    		    fenetre.setTitle("Programme Surveillance Parc Informatique");
    		    fenetre.setSize(400, 1000);
    		    fenetre.setLocationRelativeTo(null);
     
    		    //Termine le processus lorsqu'on clique sur la croix rouge
     
    		    fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
    		    //Et enfin, la rendre visible      
    		 fenetre.setVisible(true);
     
     
     
    				 //create file object
             File file = new File("\\\\NAS-83-C2-91\\media\\Plateforme_COL\\plateformes\\CENTRAL-PC\\log_annexe.txt");
             File file2 = new File("\\\\NAS-83-C2-91\\media\\Plateforme_COL\\plateformes\\ANNEXE_2-PC\\log_annexe.txt");
             BufferedInputStream bin = null;
     
             try
             {
                     //create FileInputStream object
                     FileInputStream fin = new FileInputStream(file);
                     FileInputStream fin2 = new FileInputStream(file2);
     
                     //create object of BufferedInputStream
                     bin = new BufferedInputStream(fin);
                     bin = new BufferedInputStream(fin2);
     
                     //create a byte array
                     byte[] contents = new byte[1024];
                     byte[] contents2 = new byte[1024];
     
                     int bytesRead=0;
                     String strFileContents;
                     String strFileContents2;
     
                     while( (bytesRead = bin.read(contents)) != -1){
     
                             strFileContents = new String(contents, 0, bytesRead);
                             strFileContents2 = new String(contents, 0, bytesRead);
                             System.out.print(strFileContents);
                             System.out.print(strFileContents2);
                     }
     
             }
             catch(FileNotFoundException e)
             {
                     System.out.println("File not found" + e);
             }
             catch(IOException ioe)
             {
                     System.out.println("Exception while reading the file "
    + ioe);
             }
             finally
             {
                     //close the BufferedInputStream using close method
                     try{
                             if(bin != null)
                                     bin.close();
                     }catch(IOException ioe)
                     {
                             System.out.println("Error while closing the stream :"
    + ioe);
                     }
     
             }
     
    		}
    }

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    763
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2008
    Messages : 763
    Points : 576
    Points
    576
    Par défaut
    Bonjour,

    Déjà, les conventions du code java doivent être respectées (voir ici). Ainsi, le nom de ta classe test doit commencer par une lettre majuscule.

    Ensuite, je ne sais pas si tu codes dans Eclipse, mais si tu codes dans eclipse tu peux indenter ton code de manière plus lisible en faisant (ctrl + Maj + F) et apparemment c'est le même raccourcis clavier pour NetBeans (voir ici)

    Pour afficher dans ta fenêtre JFrame, tu dois y insérer des composant d'affichage de texte (voir tuto ici)

    De plus, lorsque tu récupères chaque ligne issue de ton .txt, tes variables "strFileContents" ou "strFileContents2" sont écrasées (lis ton code en mode debug en mettant des points d'arrêts, tu t'en appercevras). Le mieux est de créer un StringBuilder qui te permettra d'ajouter au fur et à mesure que les lignes sont lues, le texte dans le StringBuilder.

    Voir code ci-dessous :
    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
    package test;
    //Ceci importe la classe Scanner du package java.util
     
    import java.awt.BorderLayout;
    import java.io.BufferedInputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
     
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
     
    //Ceci importe toutes les classes du package java.util
     
    public class Test {
     
    	public static void main(String[] args) {
    		JFrame fenetre = new JFrame();
    		fenetre.setTitle("Programme Surveillance Parc Informatique");
    		fenetre.setSize(400, 1000);
    		fenetre.setLocationRelativeTo(null);
     
    		// Termine le processus lorsqu'on clique sur la croix rouge
    		fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		//ici on créé un panneau dans lequel on va pouvoir insérer des composants tels que JTextField
    		JPanel contentPane = new JPanel(new BorderLayout());
    		//on créé un composant qui accueillera le texte
    		JTextField champsTexte = new JTextField("");
    		//on insère le composant dans le panneau
    		contentPane.add(champsTexte);
    		//On insère le panneau dans la fenêtre
    		fenetre.setContentPane(contentPane);
     
    		// create file object
    		File file = new File("log_annexe.txt");
    		File file2 = new File("log_annexe.txt");
    		BufferedInputStream bin = null;
     
    		try {
    			// create FileInputStream object
    			FileInputStream fin = new FileInputStream(file);
    			FileInputStream fin2 = new FileInputStream(file2);
     
    			// create object of BufferedInputStream
    			bin = new BufferedInputStream(fin);
    			bin = new BufferedInputStream(fin2);
     
    			// create a byte array
    			byte[] contents = new byte[1024];
    			byte[] contents2 = new byte[1024];
     
    			int bytesRead = 0;
    			StringBuilder strSB = new StringBuilder();
     
    			while ((bytesRead = bin.read(contents)) != -1) {
    				strSB.append(new String(contents, 0, bytesRead));
    //				strFileContents = new String(contents, 0, bytesRead);
    //				strFileContents2 = new String(contents, 0, bytesRead);
    				System.out.print(strSB);
    				champsTexte.setText(strSB.toString());
    			}
     
    		} catch (FileNotFoundException e) {
    			System.out.println("File not found" + e);
    		} catch (IOException ioe) {
    			System.out.println("Exception while reading the file " + ioe);
    		} finally {
    			// close the BufferedInputStream using close method
    			try {
    				if (bin != null)
    					bin.close();
    			} catch (IOException ioe) {
    				System.out.println("Error while closing the stream :" + ioe);
    			}
     
    		}
     
    		// Et enfin, la rendre visible
    		fenetre.setVisible(true);
     
    	}
    }

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 15
    Points : 11
    Points
    11
    Par défaut
    Je vais regarder tout ca merci de ton aide.

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    763
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2008
    Messages : 763
    Points : 576
    Points
    576
    Par défaut
    Avec grand plaisir !
    N'hésites pas à poser d'autres questions au cas où je n'ai pas été clair.

    Par contre, il te faut utiliser l'icone # lorsque tu veux insérer du code dans ton message ! Tu vas te faire réprimander par un administrateur

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    763
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2008
    Messages : 763
    Points : 576
    Points
    576
    Par défaut
    Heu ! petite modif :
    j'ai sorti l'affichage dans le JTextField du while :
    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
    package test;
    //Ceci importe la classe Scanner du package java.util
     
    import java.awt.BorderLayout;
    import java.io.BufferedInputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
     
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
     
    //Ceci importe toutes les classes du package java.util
     
    public class Test {
     
    	public static void main(String[] args) {
    		JFrame fenetre = new JFrame();
    		fenetre.setTitle("Programme Surveillance Parc Informatique");
    		fenetre.setSize(400, 1000);
    		fenetre.setLocationRelativeTo(null);
     
    		// Termine le processus lorsqu'on clique sur la croix rouge
    		fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		//ici on créé un panneau dans lequel on va pouvoir insérer des composants tels que JTextField
    		JPanel contentPane = new JPanel(new BorderLayout());
    		//on créé un composant qui accueillera le texte
    		JTextField champsTexte = new JTextField("");
    		//on insère le composant dans le panneau
    		contentPane.add(champsTexte);
    		//On insère le panneau dans la fenêtre
    		fenetre.setContentPane(contentPane);
     
    		// create file object
    		File file = new File("log_annexe.txt");
    		File file2 = new File("log_annexe.txt");
    		BufferedInputStream bin = null;
     
    		try {
    			// create FileInputStream object
    			FileInputStream fin = new FileInputStream(file);
    			FileInputStream fin2 = new FileInputStream(file2);
     
    			// create object of BufferedInputStream
    			bin = new BufferedInputStream(fin);
    			bin = new BufferedInputStream(fin2);
     
    			// create a byte array
    			byte[] contents = new byte[1024];
    			byte[] contents2 = new byte[1024];
     
    			int bytesRead = 0;
    			StringBuilder strSB = new StringBuilder();
     
    			while ((bytesRead = bin.read(contents)) != -1) {
    				strSB.append(new String(contents, 0, bytesRead));
    //				strFileContents = new String(contents, 0, bytesRead);
    //				strFileContents2 = new String(contents, 0, bytesRead);
    				System.out.print(strSB);
    			}
     
    			champsTexte.setText(strSB.toString());
    		} catch (FileNotFoundException e) {
    			System.out.println("File not found" + e);
    		} catch (IOException ioe) {
    			System.out.println("Exception while reading the file " + ioe);
    		} finally {
    			// close the BufferedInputStream using close method
    			try {
    				if (bin != null)
    					bin.close();
    			} catch (IOException ioe) {
    				System.out.println("Error while closing the stream :" + ioe);
    			}
     
    		}
     
    		// Et enfin, la rendre visible
    		fenetre.setVisible(true);
     
    	}
    }

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 15
    Points : 11
    Points
    11
    Par défaut
    Ok c'est cool ca marche merci beaucoup !
    Cependant j'ai un petit souci c'est que le fichier texte devient innaccessible en lecture quand Java tourne. Est ce qu'il existe une solution ?

    Je voudrai pouvoir lire ce fichier chaque 30 secondes en boucle mais du coup mon autre script ne peut pas écrire dedans si java le lit

    MErci de ton aide

  7. #7
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    763
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2008
    Messages : 763
    Points : 576
    Points
    576
    Par défaut
    Bonsoir,

    Dans ce cas, je pense qu'il te faudrait peut-être utiliser les threads.
    -Un thread avec un timer qui va lire le fichier et envoyer le texte à un autre thread qui affiche.

    tu peux voir avec ce tutoriel : http://viennet.developpez.com/cours/java/thread/
    ou celui là : http://mtodorovic.developpez.com/lin...e/?page=page_4

    A voir, est-ce que les pro de developpez confirment mes idées ?


    Peut-être voir du côté des classes Timer et TimerTask : http://grisha.developpez.com/tutoriels/java/scheduling/


  8. #8
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    763
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2008
    Messages : 763
    Points : 576
    Points
    576
    Par défaut
    Bonsoir,

    Dans ce cas, je pense qu'il te faudrait peut-être utiliser les threads.
    -Un thread avec un timer qui va lire le fichier et envoyer le texte à un autre thread qui affiche.

    tu peux voir avec ce tutoriel : http://viennet.developpez.com/cours/java/thread/
    ou celui là : http://mtodorovic.developpez.com/lin...e/?page=page_4

    A voir, est-ce que les pro de developpez confirment mes idées ?

    Peut-être voir du côté des classes Timer et TimerTask : http://grisha.developpez.com/tutoriels/java/scheduling/


  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 15
    Points : 11
    Points
    11
    Par défaut
    Ok super merci pour toutes ces pistes je vais creuser de ce côté là

Discussions similaires

  1. Afficher un texte dans la barre d'adresse dans charger l'URL
    Par d.w.d dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 12/04/2006, 12h14
  2. [VB6]Afficher du texte dans Textbox desactivé + scrollbar?
    Par toninlg dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 21/03/2006, 19h40
  3. Besoin d'aide pour afficher du text dans un applet
    Par argon dans le forum Applets
    Réponses: 2
    Dernier message: 15/01/2006, 22h53
  4. afficher du texte dans le champ de saisie de type file
    Par MANU_2 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 01/09/2005, 15h59
  5. Réponses: 2
    Dernier message: 10/06/2002, 12h03

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