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 :

Problème de positionnement de mes composants


Sujet :

AWT/Swing Java

  1. #61
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2014
    Messages : 180
    Points : 64
    Points
    64
    Par défaut
    arrête de mettre des couleurs dans le code qui rendent illisible le code
    dsl j'essaye de faire comme toi mais javou que le vert fluo est illisible!

    le code que retourne une collection je te l'ai déjà donné
    Oui :
    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
    private  Collection<String> split(String string, String VALUE_B, String VALUE_E) {
     
    		 Collection<String> mots = new LinkedHashSet<>();  
     
     
    		String[] tab = string.split("\n");
    		for (int i = 0; i < tab.length; i++) {  
     
    			//System.out.println(i + " : " + tab[i]);
     
    			int index1 = tab[i].indexOf(VALUE_B);  
    			while (index1 >= 0) {  
     
    				int index2 = tab[i].indexOf(VALUE_E, index1);  
    				if (index2 >= 0) {  
     
    					int index3 = tab[i].lastIndexOf("{", index2);  
    					if (index3 != index1) {  
    						System.err
    								.println("Problème dans le fichier : { non fermée en "
    										+ index1);
    					}
     
    					String x = tab[i].substring(index1 + 1, index2);  
     
    					mots.add(x);  
     
    				} else {
     
     
    					System.err
    							.println("Problème dans le fichier : { non fermée en "
    									+ index1);
    					break;  
     
    				}
     
    				index1 = tab[i].indexOf(VALUE_B, index2);  
     
    			} // fin de la boucle while
     
    		} // fin de la boucle for                                                                                                                                                                                                                                                                                            
     
    		return mots;
    	}
    une collection c'est une liste, simplement on ne peut pas accèder à un élément par son indice, mais comme ça sert à rien dans ton cas, une collection suffit
    Oui dans le cas précédent toi t'avais utilisé l'objet LinkedHashSet, donc là je vais voir sur les docs quel type d'objet utilisé mais je pense qu'un ArrayList fera l'affaire...

  2. #62
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2014
    Messages : 180
    Points : 64
    Points
    64
    Par défaut
    Re

    C'est bon j'ai trouver ce qui nous manquais :

    code Finally :

    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
    public Collection<String> traiterFichier(String zoneB, String zoneE, String valueB, String valueE, String filename) {
     
            String string = extract(filename, zoneB, zoneE);   
            Collection<String> mots = new LinkedHashSet<>();  
     
    	if (string != null) {
    		mots = split(string, valueB, valueE);
     
     
    	} else {
     
    		System.out.println("Aucune chaine trouvée comprise entre " + zoneB
    				+ " et " + zoneE);
    	}
    	return mots;
     
    	}
    code SimpleFenetre :

    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
    // Button "OK"
    		JButton btnOk = new JButton("OK");
    		btnOk.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent arg0) {	
    				// On lit les 5 champs 
     
    				String ZONE_B = zoneB.getText();
    				String ZONE_E = zoneE.getText();
    				String VALUE_B = valueB.getText();
    				String VALUE_E = valueE.getText();
    				String PATH = textField_4.getText();
     
    				// On appelle la méthode de l'autre classe 
    				Collection<String> a1 = new LinkedHashSet<>(); 
    				 a1 = new Finally().traiterFichier(ZONE_B, ZONE_E, VALUE_B, VALUE_E, PATH);
    				 for (String mot : a1)
    				 {
    				 //affichage
    					 	System.out.print(mot + "\n");
    				 }
    			}	
     
    		});
    et maintenant nous pouvons lancer le résultat directement depuis la classe SimpleFenetre!!

  3. #63
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par khalous91 Voir le message
    dsl j'essaye de faire comme toi mais javou que le vert fluo est illisible!
    [CODE]System.out.println([B][HIGHLIGHT]"Surligné"[/HIGHLIGHT][/B]);[/CODE]

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println("Surligné");
    Citation Envoyé par khalous91 Voir le message
    Oui dans le cas précédent toi t'avais utilisé l'objet LinkedHashSet, donc là je vais voir sur les docs quel type d'objet utilisé mais je pense qu'un ArrayList fera l'affaire...
    Si j'ai utilisé un LinkedHashSet, c'est pour n'avoir que les valeurs distinctes et conserver l'ordre dans le fichier d'origine (ce que fait un LinkedHashSet - il me semblait l'avoir dit même, sans ça il y a aussi la doc qui l'explique). Nonobstant le fait qu'une ArrayList peut effectivement stocker une liste d'éléments, pourquoi modifier un code qui fonctionne et fait le job.

    Ton but était d'afficher un résultat : sans plus de détails sur la finalité de cet affichage, je t'ai donnée une solution qui affiche un résultat, même s'il y a 50000 manières de l'améliorer. Tu m'as dit que ça ne te convenait pas et que tu voulais avoir ce qu'il y avait affiché dans la console dans une fenêtre et je t'ai donné des pistes pour le faire (même si je trouve ça complètement abscons).

    Maintenant, que tu utilises une ArrayList, un tableau, un HashSet, un Iterable, ou n'importe quoi d'autre, ce n'est pas ça qui va changer quoique ce soit à l'affichage.

    Je résume :
    • Tu me dis que tu veux te rendre quelque part
    • Je te demande des détails (distance, temps, budget, si tu as des charges lourdes à trimballer, etc...)
    • Tu me dis que tu en sais rien
    • Je te dis alors "Vas-y à vélo"
    • Tu me réponds que ça ne te convient pas et que tu veux y aller à cloche-pied
    • Je te dis que qu'il y a plein de moyens de transport et que ce n'est pas le moyen le plus pratique
    • Tu me dis que tu veux quand même y aller à cloche-pied
    • Je te dis qu'il va falloir que tu te muscles une jambe, parce que tu vas devoir sautiller
    • Et tu là me réponds que tu ne trouves pas sur Internet ce que ça veux dire, que ton tuteur de dit qu'il faut que tu sautes sur un pied, et toi tu me dit qu'il faut alors que tu changes de chaussures
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  4. #64
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2014
    Messages : 180
    Points : 64
    Points
    64
    Par défaut
    Tu me dis que tu veux te rendre quelque part
    Je te demande des détails (distance, temps, budget, si tu as des charges lourdes à trimballer, etc...)
    Tu me dis que tu en sais rien
    Je te dis alors "Vas-y à vélo"
    Tu me réponds que ça ne te convient pas et que tu veux y aller à cloche-pied
    Je te dis que qu'il y a plein de moyens de transport et que ce n'est pas le moyen le plus pratique
    Tu me dis que tu veux quand même y aller à cloche-pied
    Je te dis qu'il va falloir que tu te muscles une jambe, parce que tu vas devoir sautiller
    Et tu là me réponds que tu ne trouves pas sur Internet ce que ça veux dire, que ton tuteur de dit qu'il faut que tu sautes sur un pied, et toi tu me dit qu'il faut alors que tu changes de chaussures
    C'est vrai que c'était confond un peu cette histoire d'affichage console...
    J'aurai préférer que tu m'accompagne directement a bord de ta voiture et qu'au milieu du chemin tu me laisse le volant, j'aime bien voyager avec un copilote ( en cas de soucis ) sans pour autant prendre le vélo car je ne sais pas faire du vélo ... lool

  5. #65
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par khalous91 Voir le message
    C'est vrai que c'était confond un peu cette histoire d'affichage console...
    J'aurai préférer que tu m'accompagne directement a bord de ta voiture et qu'au milieu du chemin tu me laisse le volant, j'aime bien voyager avec un copilote ( en cas de soucis ) sans pour autant prendre le vélo car je ne sais pas faire du vélo ... lool
    Tu risque pas d'apprendre à conduire si tu es sur le siège passager tout le temps. M'enfin, vu comment on avance et on recule depuis le début de cette discussion, je suis pas près de te passer le volant. Il va falloir peut-être que tu songes à te trouver un chauffeur...
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  6. #66
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2014
    Messages : 180
    Points : 64
    Points
    64
    Par défaut
    Tu risque pas d'apprendre à conduire si tu es sur le siège passager tout le temps.
    Je suis tout à fait d'accord avec toi, mais avec quelques heures de conduite ainsi que de la pratique je seraît apte un jour à diriger seul ma voiture.

    Il va falloir peut-être que tu songes à te trouver un chauffeur...
    Pour l'instant tu as été mon meilleur instructeur.. pourquoi changer ahaha

    Euh petite parenthèse, j'ai trouver un code pour afficher dans une JFrame à part, c'est presque ça mais il manque un truc :

    code 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
    import java.util.Collection;
     
    import javax.swing.JFrame;
    import javax.swing.JTextArea;
     
     
    public class Console {
     
    		public Collection<String> Console() {
    			 JFrame f = new JFrame("Console");
    			    JTextArea res = new JTextArea();
    			    f.setSize(300, 300);  
    			    f.add(res);
    			    f.setVisible(true);
     
    			return null;
    		}
     
    public JTextArea res;
     
    		public void prompt(String mot) {
    		    res.append(mot + "\n");
    		}
    	}
    code SimpleFenetre :

    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
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
     import java.awt.EventQueue;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.File;
    import java.util.Collection;
    import java.util.LinkedHashSet;
     
    import javax.swing.ButtonGroup;
    import javax.swing.JButton;
    import javax.swing.JFileChooser;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
    import javax.swing.border.EmptyBorder;
    import javax.swing.JTextArea;
     
     
    public class simplefenetre extends JFrame {
     
    	private JPanel contentPane;
    	private static JTextField zoneB;
    	private static JTextField valueE;
    	private static JTextField zoneE;
    	private static JTextField valueB;
    	private JTextField textField_4;
     
     
     
    	public static void main(String[] args) {
    		EventQueue.invokeLater(new Runnable() {
    			public void run() {
    				try {
    					simplefenetre frame = new simplefenetre();
    					frame.setVisible(true);
    				} catch (Exception e) {
    					e.printStackTrace();
    				}
    			}
    		});
    	}
     
    	/* Le constructeur */
     
    	public simplefenetre() {
    		// On créer un groupe de boutons .
    		ButtonGroup groupeDeBoutons = new ButtonGroup(); 
     
     
    		setTitle("Traiter vos fichiers");
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		setBounds(100, 100, 450, 300);
    		contentPane = new JPanel();
    		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    		setContentPane(contentPane);
    		contentPane.setLayout(null);
     
    		// Button "OK"
    		JButton btnOk = new JButton("OK");
    		btnOk.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent arg0) {	
    				// On lit les 5 champs 
     
    				String ZONE_B = zoneB.getText();
    				String ZONE_E = zoneE.getText();
    				String VALUE_B = valueB.getText();
    				String VALUE_E = valueE.getText();
    				String PATH = textField_4.getText();
    				JTextArea res  = new JTextArea();
     
    				// On appelle la méthode traiterFichier 
    				Collection<String> a1 = new LinkedHashSet<>(); 
    				 a1 = new Console().Console();
     
    				 for (String mot : a1)
    				 {
    				 //affichage
    				System.out.println(mot);
    				res.append(mot + "\n");
     
    				 }
    			}	
     
    		});
     
    		// mise en relation du bouton ok avec les deux autres
    		groupeDeBoutons.add(btnOk);
    		btnOk.setBounds(243, 228, 58, 23);
    		contentPane.add(btnOk);
     
    		// Button "PARCOURIR"
     
    		JButton btnParcourir = new JButton("PARCOURIR");
    		btnParcourir.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e) {
    				browseFile();  // sert au bouton PARCOURIR d'aller chercher un fichier x 			
    			}
    		});
     
    		// mise en relation du bouton PARCOURIR avec les deux autres
    				groupeDeBoutons.add(btnParcourir);
    		btnParcourir.setBounds(304, 56, 120, 23);
    		contentPane.add(btnParcourir);
     
    		// Button "ANNULER"
     
    		JButton btnAnnuler = new JButton("ANNULER");
    		btnAnnuler.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e) {
    				System.exit(0);
    			}
    		});
     
    		// mise en relation du bouton ANNULER avec les deux autres
    		groupeDeBoutons.add(btnAnnuler);
    		btnAnnuler.setBounds(311, 228, 113, 23);
    		contentPane.add(btnAnnuler);
     
    		// On créer les composants de saisies .
     
    		zoneB = new JTextField("#>");
    		zoneB.setBounds(116, 112, 86, 20);
    		contentPane.add(zoneB);
    		zoneB.setColumns(10);
     
    		zoneE = new JTextField("#<");
    		zoneE.setBounds(116, 145, 86, 20);
    		contentPane.add(zoneE);
    		zoneE.setColumns(10);
     
    		valueB = new JTextField("{");
    		valueB.setBounds(116, 176, 86, 20);
    		contentPane.add(valueB);
    		valueB.setColumns(10);
     
    		valueE = new JTextField("}");
    		valueE.setBounds(116, 207, 86, 20);
    		contentPane.add(valueE);
    		valueE.setColumns(10);
     
     
    		JLabel lblNewLabel = new JLabel("VALUE_B ");
    		lblNewLabel.setBounds(10, 179, 86, 14);
    		contentPane.add(lblNewLabel);
     
    		JLabel lblNewLabel_1 = new JLabel("ZONE_B");
    		lblNewLabel_1.setBounds(10, 115, 73, 14);
    		contentPane.add(lblNewLabel_1);
     
    		JLabel lblNewLabel_2 = new JLabel("VALUE_E");
    		lblNewLabel_2.setBounds(10, 210, 73, 14);
    		contentPane.add(lblNewLabel_2);
     
    		JLabel lblNewLabel_3 = new JLabel("ZONE_E");
    		lblNewLabel_3.setBounds(10, 148, 73, 14);
    		contentPane.add(lblNewLabel_3);
     
    		textField_4 = new JTextField();
    		textField_4.setBounds(10, 57, 192, 20);
    		contentPane.add(textField_4);
    		textField_4.setColumns(10);
     
    	}
     
    	private void browseFile() {
    		JFileChooser fileChooser = new JFileChooser();
    		fileChooser.setDialogTitle("Choisir le fichier...");
    		fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
    		fileChooser.setMultiSelectionEnabled(false);
    		if ( !textField_4.getText().isEmpty() ) { // faire bien attention : bien faire correspondre notre textField choisi, ici le textField_4
    			fileChooser.setSelectedFile(new File(zoneB.getText()));
    		}
    		// il y a plein d'autres méthodes pour customiser le composant (filtre sur les fichiers par exemple) : voir doc.
    		if ( fileChooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION ) { 
    			textField_4.setText(  fileChooser.getSelectedFile().getAbsolutePath().toString() );
    		}
    	}
    }
    code Finally :

    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
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.IOException;
    import java.io.PrintStream;
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.LinkedHashSet;
     
    public class Finally {
     
     
    	public static final String ZONE_B = "#>"; // le début de la sous partie de texte à extraire
    	public static final String ZONE_E = "#<"; // la fin de la sous partie de texte à extraire
    	public static final String VALUE_B = "{"; // le début d'un mot à extraire
    	public static final String VALUE_E = "}"; // la fin d'un mot à extraire
    	public static final String PATH = "fichierCSH.txt"; // le nom du fichier par défaut lu
     
    	/* On peut passer un paramètre à la méthode main() : 
    	 * le nom du fichier et  s'il n'est pas spécifiée, on utilise PATH. 
    	 * Cette méthode appelle d'abord extract() 
    	 * puis split() et affiche les mots distincts trouvés 
    	 */
     
    	public static void main(String[] args) {
     
    		String path;
    		if ( args.length>0 ) {
    			path = args[0];
    		}
    		else {
    			path = PATH;
    		}
     
                   new Finally().traiterFichier(ZONE_B, ZONE_E, VALUE_B, VALUE_E, path);	
    	}
     
    	public Collection<String> traiterFichier(String zoneB, String zoneE, String valueB, String valueE, String filename) {
     
            String string = extract(filename, zoneB, zoneE);   
            Collection<String> mots = new LinkedHashSet<>();  
     
    	if (string != null) {
    		mots = split(string, valueB, valueE);
     
     
    	} else {
     
    		System.out.println("Aucune chaine trouvée comprise entre " + zoneB
    				+ " et " + zoneE);
    	}
    	return mots;
     
    	}
     
    	/**
             * Lit le fichier spécifié et extrait la partie située entre ZONE_B et ZONE_E
             * @param filename nom du fichier
             * @return la chaîne extraite ou null si aucune chaîne trouvée, ou si le fichier n'existe pas
             */
     
    	private  String extract(String filename, String ZONE_B, String ZONE_E) { 
     
    		try {
     
    			StringBuilder stringBuilder = new StringBuilder();  
     
    			BufferedReader buff = new BufferedReader(new FileReader(filename));
     
    			try {
    				String line;
     
    				while ((line = buff.readLine()) != null) { 
    					stringBuilder.append(line);  
    					stringBuilder.append('\n');
    				}
    			} finally {
    				buff.close();
    			}
     
    			String toutLeFichier = stringBuilder.toString();  
     
    			int a = toutLeFichier.indexOf(ZONE_B);
    			int b = toutLeFichier.indexOf(ZONE_E);
     
    			if (a >= 0 && b >= 0) { 
    				return toutLeFichier.substring(a + ZONE_B.length(), b); 
    			}
     
    		}
     
    		catch( FileNotFoundException e) {
    			System.err.println("Fichier " + new File(filename).getAbsolutePath() + " introuvable"); 
    		}
    		catch (IOException ioe) {
    			System.err.println("Erreur --" + ioe.getMessage());
    			ioe.printStackTrace();
    		}
     
    		return null;
     
    	}
     
    	/**
             * Extrait de la chaîne spécifiée la liste, sans doublons, des mots situés entre VALUE_B et VALUE_E 
             * @param string la chaîne dont on doit extraire les mots
             * @return la liste de mots extraite
             */
     
     
    	private  Collection<String> split(String string, String VALUE_B, String VALUE_E) {
     
    		 Collection<String> mots = new LinkedHashSet<>();  
     
     
    		String[] tab = string.split("\n");
    		for (int i = 0; i < tab.length; i++) {  
     
    			//System.out.println(i + " : " + tab[i]);
     
    			int index1 = tab[i].indexOf(VALUE_B);  
    			while (index1 >= 0) {  
     
    				int index2 = tab[i].indexOf(VALUE_E, index1);  
    				if (index2 >= 0) {  
     
    					int index3 = tab[i].lastIndexOf("{", index2);  
    					if (index3 != index1) {  
    						System.err
    								.println("Problème dans le fichier : { non fermée en "
    										+ index1);
    					}
     
    					String x = tab[i].substring(index1 + 1, index2);  
     
    					mots.add(x);  
     
    				} else {
     
     
    					System.err
    							.println("Problème dans le fichier : { non fermée en "
    									+ index1);
    					break;  
     
    				}
     
    				index1 = tab[i].indexOf(VALUE_B, index2);  
     
    			} // fin de la boucle while
     
    		} // fin de la boucle for                                                                                                                                                                                                                                                                                            
     
    		return mots;
    	}
     
     
     
    }
    Tu sais pas il manque quoi?

  7. #67
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2014
    Messages : 180
    Points : 64
    Points
    64
    Par défaut
    J'avance petit à petit mais il y a deux erreurs que je n'arrive pas à résoudre !! grrr

    code simple fenetre :
    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
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
     import java.awt.EventQueue;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.File;
    import java.util.Collection;
    import java.util.LinkedHashSet;
     
    import javax.swing.ButtonGroup;
    import javax.swing.JButton;
    import javax.swing.JFileChooser;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
    import javax.swing.border.EmptyBorder;
    import javax.swing.JTextArea;
     
     
    public class simplefenetre extends JFrame {
     
    	private JPanel contentPane;
    	private static JTextField zoneB;
    	private static JTextField valueE;
    	private static JTextField zoneE;
    	private static JTextField valueB;
    	private JTextField textField_4;
     
     
     
    	public static void main(String[] args) {
    		EventQueue.invokeLater(new Runnable() {
    			public void run() {
    				try {
    					simplefenetre frame = new simplefenetre();
    					frame.setVisible(true);
    				} catch (Exception e) {
    					e.printStackTrace();
    				}
    			}
    		});
    	}
     
    	/* Le constructeur */
     
    	public simplefenetre() {
    		// On créer un groupe de boutons .
    		ButtonGroup groupeDeBoutons = new ButtonGroup(); 
     
     
    		setTitle("Traiter vos fichiers");
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		setBounds(100, 100, 450, 300);
    		contentPane = new JPanel();
    		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    		setContentPane(contentPane);
    		contentPane.setLayout(null);
     
    		// Button "OK"
    		JButton btnOk = new JButton("OK");
    		btnOk.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent arg0) {	
    				// On lit les 5 champs 
     
    				String ZONE_B = zoneB.getText();
    				String ZONE_E = zoneE.getText();
    				String VALUE_B = valueB.getText();
    				String VALUE_E = valueE.getText();
    				String PATH = textField_4.getText();
     
     
    				// On appelle la méthode traiterFichier 
    				Collection<String> a1 = new LinkedHashSet<>(); 
     
    				Console fenetre = new Console();
     
    				 a1 = new Finally().traiterFichier(ZONE_B, ZONE_E, VALUE_B, VALUE_E, PATH);
    				 for (String mot : a1)
    				 {
    				 //affichage
    					System.out.println(mot);
    					fenetre.prompt(mot);
     
    				 }
    			}	
     
    		});
     
    		// mise en relation du bouton ok avec les deux autres
    		groupeDeBoutons.add(btnOk);
    		btnOk.setBounds(243, 228, 58, 23);
    		contentPane.add(btnOk);
     
    		// Button "PARCOURIR"
     
    		JButton btnParcourir = new JButton("PARCOURIR");
    		btnParcourir.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e) {
    				browseFile();  // sert au bouton PARCOURIR d'aller chercher un fichier x 			
    			}
    		});
     
    		// mise en relation du bouton PARCOURIR avec les deux autres
    				groupeDeBoutons.add(btnParcourir);
    		btnParcourir.setBounds(304, 56, 120, 23);
    		contentPane.add(btnParcourir);
     
    		// Button "ANNULER"
     
    		JButton btnAnnuler = new JButton("ANNULER");
    		btnAnnuler.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e) {
    				System.exit(0);
    			}
    		});
     
    		// mise en relation du bouton ANNULER avec les deux autres
    		groupeDeBoutons.add(btnAnnuler);
    		btnAnnuler.setBounds(311, 228, 113, 23);
    		contentPane.add(btnAnnuler);
     
    		// On créer les composants de saisies .
     
    		zoneB = new JTextField("#>");
    		zoneB.setBounds(116, 112, 86, 20);
    		contentPane.add(zoneB);
    		zoneB.setColumns(10);
     
    		zoneE = new JTextField("#<");
    		zoneE.setBounds(116, 145, 86, 20);
    		contentPane.add(zoneE);
    		zoneE.setColumns(10);
     
    		valueB = new JTextField("{");
    		valueB.setBounds(116, 176, 86, 20);
    		contentPane.add(valueB);
    		valueB.setColumns(10);
     
    		valueE = new JTextField("}");
    		valueE.setBounds(116, 207, 86, 20);
    		contentPane.add(valueE);
    		valueE.setColumns(10);
     
     
    		JLabel lblNewLabel = new JLabel("VALUE_B ");
    		lblNewLabel.setBounds(10, 179, 86, 14);
    		contentPane.add(lblNewLabel);
     
    		JLabel lblNewLabel_1 = new JLabel("ZONE_B");
    		lblNewLabel_1.setBounds(10, 115, 73, 14);
    		contentPane.add(lblNewLabel_1);
     
    		JLabel lblNewLabel_2 = new JLabel("VALUE_E");
    		lblNewLabel_2.setBounds(10, 210, 73, 14);
    		contentPane.add(lblNewLabel_2);
     
    		JLabel lblNewLabel_3 = new JLabel("ZONE_E");
    		lblNewLabel_3.setBounds(10, 148, 73, 14);
    		contentPane.add(lblNewLabel_3);
     
    		textField_4 = new JTextField();
    		textField_4.setBounds(10, 57, 192, 20);
    		contentPane.add(textField_4);
    		textField_4.setColumns(10);
     
    	}
     
    	private void browseFile() {
    		JFileChooser fileChooser = new JFileChooser();
    		fileChooser.setDialogTitle("Choisir le fichier...");
    		fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
    		fileChooser.setMultiSelectionEnabled(false);
    		if ( !textField_4.getText().isEmpty() ) { // faire bien attention : bien faire correspondre notre textField choisi, ici le textField_4
    			fileChooser.setSelectedFile(new File(zoneB.getText()));
    		}
    		// il y a plein d'autres méthodes pour customiser le composant (filtre sur les fichiers par exemple) : voir doc.
    		if ( fileChooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION ) { 
    			textField_4.setText(  fileChooser.getSelectedFile().getAbsolutePath().toString() );
    		}
    	}
    }
    code 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
     
    import java.util.Collection;
     
    import javax.swing.JFrame;
    import javax.swing.JTextArea;
     
     
    public class Console {
     
    	public JTextArea res;
     
    	public Console() {
    		 JFrame f = new JFrame("Console");
    		    JTextArea res = new JTextArea();
    		    f.setSize(300, 300);  
    		    f.add(res); // ajout du JTextArea dans la fenetre f
    		    f.setVisible(true);
     
    	}
     
     
    	public void prompt(String mot) {
    	    res.append(mot + "\n");
    	}
    }
    code Finally :
    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
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
     
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.IOException;
    import java.io.PrintStream;
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.LinkedHashSet;
     
    public class Finally {
     
     
    	public static final String ZONE_B = "#>"; // le début de la sous partie de texte à extraire
    	public static final String ZONE_E = "#<"; // la fin de la sous partie de texte à extraire
    	public static final String VALUE_B = "{"; // le début d'un mot à extraire
    	public static final String VALUE_E = "}"; // la fin d'un mot à extraire
    	public static final String PATH = "fichierCSH.txt"; // le nom du fichier par défaut lu
     
    	/* On peut passer un paramètre à la méthode main() : 
    	 * le nom du fichier et  s'il n'est pas spécifiée, on utilise PATH. 
    	 * Cette méthode appelle d'abord extract() 
    	 * puis split() et affiche les mots distincts trouvés 
    	 */
     
    	public static void main(String[] args) {
     
    		String path;
    		if ( args.length>0 ) {
    			path = args[0];
    		}
    		else {
    			path = PATH;
    		}
     
                   new Finally().traiterFichier(ZONE_B, ZONE_E, VALUE_B, VALUE_E, path);	
    	}
     
    	public Collection<String> traiterFichier(String zoneB, String zoneE, String valueB, String valueE, String filename) {
     
            String string = extract(filename, zoneB, zoneE);   
            Collection<String> mots = new LinkedHashSet<>();  
     
    	if (string != null) {
    		mots = split(string, valueB, valueE);
     
     
    	} else {
     
    		System.out.println("Aucune chaine trouvée comprise entre " + zoneB
    				+ " et " + zoneE);
    	}
    	return mots;
     
    	}
     
    	/**
             * Lit le fichier spécifié et extrait la partie située entre ZONE_B et ZONE_E
             * @param filename nom du fichier
             * @return la chaîne extraite ou null si aucune chaîne trouvée, ou si le fichier n'existe pas
             */
     
    	private  String extract(String filename, String ZONE_B, String ZONE_E) { 
     
    		try {
     
    			StringBuilder stringBuilder = new StringBuilder();  
     
    			BufferedReader buff = new BufferedReader(new FileReader(filename));
     
    			try {
    				String line;
     
    				while ((line = buff.readLine()) != null) { 
    					stringBuilder.append(line);  
    					stringBuilder.append('\n');
    				}
    			} finally {
    				buff.close();
    			}
     
    			String toutLeFichier = stringBuilder.toString();  
     
    			int a = toutLeFichier.indexOf(ZONE_B);
    			int b = toutLeFichier.indexOf(ZONE_E);
     
    			if (a >= 0 && b >= 0) { 
    				return toutLeFichier.substring(a + ZONE_B.length(), b); 
    			}
     
    		}
     
    		catch( FileNotFoundException e) {
    			System.err.println("Fichier " + new File(filename).getAbsolutePath() + " introuvable"); 
    		}
    		catch (IOException ioe) {
    			System.err.println("Erreur --" + ioe.getMessage());
    			ioe.printStackTrace();
    		}
     
    		return null;
     
    	}
     
    	/**
             * Extrait de la chaîne spécifiée la liste, sans doublons, des mots situés entre VALUE_B et VALUE_E 
             * @param string la chaîne dont on doit extraire les mots
             * @return la liste de mots extraite
             */
     
     
    	private  Collection<String> split(String string, String VALUE_B, String VALUE_E) {
     
    		 Collection<String> mots = new LinkedHashSet<>();  
     
     
    		String[] tab = string.split("\n");
    		for (int i = 0; i < tab.length; i++) {  
     
    			//System.out.println(i + " : " + tab[i]);
     
    			int index1 = tab[i].indexOf(VALUE_B);  
    			while (index1 >= 0) {  
     
    				int index2 = tab[i].indexOf(VALUE_E, index1);  
    				if (index2 >= 0) {  
     
    					int index3 = tab[i].lastIndexOf("{", index2);  
    					if (index3 != index1) {  
    						System.err
    								.println("Problème dans le fichier : { non fermée en "
    										+ index1);
    					}
     
    					String x = tab[i].substring(index1 + 1, index2);  
     
    					mots.add(x);  
     
    				} else {
     
     
    					System.err
    							.println("Problème dans le fichier : { non fermée en "
    									+ index1);
    					break;  
     
    				}
     
    				index1 = tab[i].indexOf(VALUE_B, index2);  
     
    			} // fin de la boucle while
     
    		} // fin de la boucle for                                                                                                                                                                                                                                                                                            
     
    		return mots;
    	}
     
     
     
    }
    Quand je compile ,il y a deux erreur au niveau des lignes suivantes :

    1/ res.append(mot + "\n"); // de la classe Console
    2/ fenetre.prompt(mot); // de la classe simplefenetre

  8. #68
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2014
    Messages : 180
    Points : 64
    Points
    64
    Par défaut
    Trouvé !
    fallai juste mettre utilisé le this. !

    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
     
    import java.util.Collection;
     
    import javax.swing.JFrame;
    import javax.swing.JTextArea;
     
     
    public class Console {
     
    	public JTextArea res;
     
    	public Console() {
    		 JFrame f = new JFrame("Console");
    		    this.res = new JTextArea();
    		    f.setSize(300, 300);  
    		    f.add(res); // ajout du JTextArea dans la fenetre f
    		    f.setVisible(true);
    		    //res.append("bonjour\n");
     
    	}
     
     
    	public void prompt(String mot) {
    	    this.res.append(mot +"\n");
    	}
    }

Discussions similaires

  1. Problème positionnement de trois composants
    Par dark0502 dans le forum Interfaces Graphiques en Java
    Réponses: 1
    Dernier message: 29/06/2011, 09h24
  2. Réponses: 6
    Dernier message: 19/02/2008, 19h48
  3. Problème de placement de mes composants et layout
    Par mnemonic78 dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 28/10/2007, 16h39
  4. Problème de positionnement avec mes DIV
    Par Rifton007 dans le forum Mise en page CSS
    Réponses: 11
    Dernier message: 23/01/2007, 10h48
  5. Réponses: 5
    Dernier message: 13/06/2006, 15h14

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