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. #21
    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
    oui j'ai laissé le package par défaut.
    Je ne vois pas pourquoi la classe n'est pas vue alors. On voit bien ça dans Eclipse :

    Nom : tonprojet.png
Affichages : 139
Taille : 3,6 Ko
    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.

  2. #22
    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
    ensuite j'ai un fichier texte qui se nomme : fichierCSH qui est répertorié dans mes documents.donc c'est le fichier que je veux traiter.
    le voici :

    !/bin/csh -xv
    #BSUB -J calmod_POGO_2CU
    #BSUB -o calmod_POGO_2CU.o%J
    #BSUB -L /bin/csh

    umask 002

    #----------------------------------------------------------------------
    #{TOTO}
    # Variables
    #----------------------------------------------------------------------
    #> should be formatted by calmod_python
    set conf_etudie = "{etude}_{SIT}_sylda_{h_sylda}"
    set dir_listing = "{userPath}/{etude}/script/{etude}_{SIT}_sylda_{h_sylda}/{conf_cu}/{logName}/{horodate}/listing"
    set dir_tem = "{userPath}/{etude}/script/{etude}_{SIT}_sylda_{h_sylda}/{conf_cu}/{logName}/{horodate}/temoin"
    set dir_res = "{userPath}/{etude}/script/{etude}_{SIT}_sylda_{h_sylda}/{conf_cu}/{logName}/{horodate}/results"
    set dir_UCI_cree = "{userPath}/{etude}/script/{etude}_{SIT}_sylda_{h_sylda}/{conf_cu}/{logName}/{horodate}/UCI_cree"
    #< end the formatted line
    set fic_tem = calmod.tem
    #----------------------------------------------------------------------
    # Variables Environnement
    #----------------------------------------------------------------------
    setenv APPLI calmod_${conf_etudie}
    setenv TMPDIR /tmp/${LOGNAME}_$APPLI
    setenv DMSDIR /tmp/${LOGNAME}_$APPLI/${LOGNAME}_DMS/
    #----------------------------------------------------------------------
    # Repertoires temporaires de calcul
    #----------------------------------------------------------------------
    if ( ! -d $TMPDIR ) then
    mkdir $TMPDIR
    else
    rm -r -f $TMPDIR/*
    endif

    cd $TMPDIR
    setenv PP $$
    touch $PP.err


    Donc moi quand je clique sur parcourir je choisi ce fichier ci-dessus, j'entre mes différents paramètres, c'est a dire :
    Nom : fenetre50.png
Affichages : 106
Taille : 16,8 Ko

    et lorsque je lance le programme => Bouton OK
    ça échou lol car je n'arrive pas a obtenir les champs qui sont délimités par mes paramètres donnés..
    chitt!

  3. #23
    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
    Citation Envoyé par joel.drigo Voir le message
    Je ne vois pas pourquoi la classe n'est pas vue alors. On voit bien ça dans Eclipse :

    Nom : tonprojet.png
Affichages : 139
Taille : 3,6 Ko
    Oui il étaient tous les deux dans un package par défaut mais là je viens de les mettre dans le même package par defaut :
    Nom : package.png
Affichages : 96
Taille : 13,5 Ko

  4. #24
    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
    Elles étaient dans 2 projets différents tes classes. Les classes d'un projet ne sont pas directement visibles dans un autre projet : on peut le faire de différentes manières, mais ça n'a pas d'intérêt dans ton cas de faire 2 projets.
    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.

  5. #25
    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
    ensuite j'ai un fichier texte qui se nomme : fichierCSH qui est répertorié dans mes documents.donc c'est le fichier que je veux traiter.
    le voici :

    ...

    et lorsque je lance le programme => Bouton OK
    ça échou lol car je n'arrive pas a obtenir les champs qui sont délimités par mes paramètres donnés..
    chitt!
    Bah, c'est normal, ZONE_B et ZONE_E, c'est #< et ># dans le fichier, alors que toi tu as saisies $< et >$ !

    Tiens en passant, je vais te donner un petit truc supplémentaire :

    ça c'est ton code (un peu près entre la ligne 111 et 129) : j'ai ajouté en surligné jaune la référence aux constantes de l'autre classe, ce qui fait que tu auras les valeurs de ces constantes par ééfaut dans les champs (il faut juste que tu mettes public au lieu de private dans les déclaratios (par exemple publix static final String ZONE_B au lieu private static final String ZONE_B)
    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
    textField = new JTextField(Finally.ZONE_B);
    		textField.setBounds(116, 112, 86, 20);
    		contentPane.add(textField);
    		textField.setColumns(10);
     
    		textField_1 = new JTextField(Finally.ZONE_E);
    		textField_1.setBounds(116, 207, 86, 20);
    		contentPane.add(textField_1);
    		textField_1.setColumns(10);
     
    		textField_2 = new JTextField(Finally.VALUE_B);
    		textField_2.setBounds(116, 145, 86, 20);
    		contentPane.add(textField_2);
    		textField_2.setColumns(10);
     
    		textField_3 = new JTextField(Finally.VALUE_E);
    		textField_3.setBounds(116, 176, 86, 20);
    		contentPane.add(textField_3);
    		textField_3.setColumns(10);
    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. #26
    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
    Bah, c'est normal, ZONE_B et ZONE_E, c'est #< et ># dans le fichier, alors que toi tu as saisies $< et >$ !
    Oui lol j'suis con j'viens juste de le remarquer!

    tiens j'ai trouver ça aussi :

    code de 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
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.Collection;
    import java.util.LinkedHashSet;
    
    public class Finally {
     
    	
    	private static final String ZONE_B = "#>"; // le début de la sous partie de texte à extraire
    	private static final String ZONE_E = "#<"; // la fin de la sous partie de texte à extraire
    	private static final String VALUE_B = "{"; // le début d'un mot à extraire
    	private static final String VALUE_E = "}"; // la fin d'un mot à extraire
    	private 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 void traiterFichier(String zoneB, String zoneE, String valueB, String valueE, String filename) {
    
            String string = extract(filename, zoneB, zoneE);
    
    	if (string != null) {
    		Collection<String> mots = split(string, valueB, valueE);
    		for (String mot : mots) {
    			System.out.println(mot);
    		}
    
    	} else {
    
    		System.out.println("Aucune chaine trouvée comprise entre " + zoneB
    				+ " et " + zoneE);
    	}
    
    	}
    	
    	/**
    	 * 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;
    	}
    	
    	
     
    }
    Ce que j'ai souligner en jaune était une des erreurs.En fait, il arriver pas a connaître le filename vu que dans extract j'avais mi en paramètre le PATH....

    J'ai renommé mes composants de saisies aussi pour pouvoir me retrouver ( car c'est ça le piège avec le windowbuilder, il aime bien choisir son nommage... )

    tiens sinon le code de 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
     import java.awt.BorderLayout;
     
     
    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 de l'autre classe 
    				 new Finally().traiterFichier(ZONE_B, ZONE_E, VALUE_B, VALUE_E, PATH);
    			}	
     
    		});
     
    		// 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);
     
    		valueE = new JTextField();
    		valueE.setBounds(116, 207, 86, 20);
    		contentPane.add(valueE);
    		valueE.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);
     
    		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() );
    		}
    	}
     
    }
    ça marche très bien !! encore merci Joel
    maintenant je vais créer une fenetre je pense comme sa les résultat serons affiché sur une fenetre et non pas QUE sur la console.. je pense que sa doit être vite fait !

  7. #27
    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
    Je viens de voir que tu avais utilisé un ButtonGroup : où est tu allé cherché ça ? Un ButtonGroup, c'est pour gérer des boutons sélectionnables dont on veut qu'il y en ai qu'un seul sélectionné à la fois (comme des radios) : c'est parfaitement inutile pour des boutons pressables.

    Accessoirement, ton layout est vraiment moche et pas dynamique, ce qui le rend encore plus moche (les boutons coupés en deux...)

    C'est pas plus clean comme ça (essaye de redimensionner la fenêtre) ?
    Fichiers attachés Fichiers attachés
    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.

  8. #28
    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
    Je viens de voir que tu avais utilisé un ButtonGroup : où est tu allé cherché ça ? Un ButtonGroup, c'est pour gérer des boutons sélectionnables dont on veut qu'il y en ai qu'un seul sélectionné à la fois (comme des radios) : c'est parfaitement inutile pour des boutons pressables.
    J'avais vu sa sur internet, je pensais que sa pouvais être utile...

    Accessoirement, ton layout est vraiment moche et pas dynamique, ce qui le rend encore plus moche (les boutons coupés en deux...)

    C'est pas plus clean comme ça (essaye de redimensionner la fenêtre) ?
    Oui on va dire c'est plus "simple" plus "clair" lol merci

  9. #29
    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
    Dit moi pour créer ma page qui va afficher mon résultat, c'est dans le même principe mais en plus simple même ?

    Je créer une nouvelle classe qui contiendra ma nouvelle fenêtre et le bouton OK sera à modifier ?
    C'est un truc dans ce genre là..

  10. #30
    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
    En plus simple , comment stocké le résultat console de ma fenetre sur une autre fenetre ( lorsque je clique sur OK) ?

  11. #31
    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
    Dit moi pour créer ma page qui va afficher mon résultat, c'est dans le même principe mais en plus simple même ?

    Je créer une nouvelle classe qui contiendra ma nouvelle fenêtre et le bouton OK sera à modifier ?
    C'est un truc dans ce genre là..
    Bah ça dépend un peu de comment tu veux l'afficher : il y a plein de façon de le faire et ça dépend un peu ce qu'on veut en faire après, si on veut en faire quelque chose. C'est quoi le but final d'extraire la liste ? Ce qui peut aussi jouer c'est au final dans le cas réel, combien d'élément on peut avoir à afficher.
    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.

  12. #32
    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
    C'est quoi le but final d'extraire la liste ? Ce qui peut aussi jouer c'est au final dans le cas réel, combien d'élément on peut avoir à afficher.
    Bah pour l'instant il n'y a pas de but final, sa fais parti de mon projet. J'avance petit a petit lol

    Bah ça dépend un peu de comment tu veux l'afficher : il y a plein de façon de le faire et ça dépend un peu ce qu'on veut en faire après, si on veut en faire quelque chose.
    Bah en faite c'est simple, lorsque j'appui sur le bouton OK et bah une autre fenetre apparaît avec le résultat de la console.
    tu vois ce que je veux dire ou ?

    J'ai pensé à creer une autre fenetre normal avec le windowbuilder.
    peut être créer une méthode qui va stoké le résultat de la console et appelé cette nouvelle méthode dans le bouton OK.

    No ?

  13. #33
    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
    Bah pour l'instant il n'y a pas de but final, sa fais parti de mon projet. J'avance petit a petit lol
    Bah, c'est quand même important de savoir où on veut arriver. Tous les chemins mènent à Rome, mais pour aller de Paris à Rôme, on peut passer par Genève et Gennes, ou passer par Reykjavik, Vladivosto, São Paulo, Gaborone, Boston, Leipzig, et enfin Manille. Lorsqu'on fait une application, il vaut mieux avoir des spécifications qui disent ce qu'on veut faire.

    Citation Envoyé par khalous91 Voir le message
    Bah en faite c'est simple, lorsque j'appui sur le bouton OK et bah une autre fenetre apparaît avec le résultat de la console.
    tu vois ce que je veux dire ou ?
    Bah, le faire en console c'est déjà une façon de le faire.
    Ensuite, pour l'afficher dans une fenêtre, il y a des dizaines de façon de le faire :

    • en fenêtre Swing interne
      • Dans un JLabel (HTML)
      • Dans un JTextPane/JTextArea
      • Dans un browser html
      • Dans une JList
      • Dans une JTable
    • en externe,
      • On peut créer un fichier texte, et lancer notepad.exe
      • On peut créer un fichier html et lancer un browser Internet
      • On peut servir une page web en http et lancer un browser Internet
      • On peut même faire un PDF et l'afficher
      • On peut même créer une console DOS et afficher dedans...
      • Etc...


    Tout dépend ce qu'on veut faire au final, parce que certaines possiblités sont très rapide à mettre en œuvre mais limitées en possibilités. D'autres permettent de faire pleins de chose au final mais sont beaucoup plus complexe et longue à mettre en œuvre.


    Citation Envoyé par khalous91 Voir le message

    J'ai pensé à creer une autre fenetre normal avec le windowbuilder.
    peut être créer une méthode qui va stoké le résultat de la console et appelé cette nouvelle méthode dans le bouton OK.

    No ?
    Y'a pas besoin de stocker le résultat de la console : celui-ci est produit à partir d'une Collection. On a donc déjà un objet de "stockage".
    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.

  14. #34
    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
    Bah, c'est quand même important de savoir où on veut arriver. Tous les chemins mènent à Rome, mais pour aller de Paris à Rôme, on peut passer par Genève et Gennes, ou passer par Reykjavik, Vladivosto, São Paulo, Gaborone, Boston, Leipzig, et enfin Manille. Lorsqu'on fait une application, il vaut mieux avoir des spécifications qui disent ce qu'on veut faire.
    but de mon stage : Le but est de d’améliorer la qualité globale des outils, les rationnaliser et simplifier leur utilisation. Pour cela, le stagiaire aura pour mission de concevoir un framework logiciel d’enchainement de taches. Celui-ci permettra d’automatiser de nombreuses tâches et d’augmenter la qualité. La finalité est de créer une architecture générique pour optimiser les processus.
    Le stage se déroulera en deux temps, d’abord analyser le besoin et la conception du backend. Celui-ci devra proposer une encapsulation et un paramétrage facile des scripts et outils existants. Ensuite, proposer une ébauche d’interface graphique pour mettre en œuvre et configurer le logiciel.

    Donc tout au long du stage j'éxecute les ordres de mon tuteur.Et je pense que c'est surement le début de l'IHM final à réaliser.


    ah, le faire en console c'est déjà une façon de le faire.
    Ensuite, pour l'afficher dans une fenêtre, il y a des dizaines de façon de le faire :
    D'accord, et le faite de l'afficher dans une autre fenetre, c'est rapidos ou ?

  15. #35
    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
    Je ne vois pas bien le rapport entre l'objectif de ton stage et le programme sur lequel tu as travaillé, qui est tout au plus une moulinette one shot, et très loin du concept de framework générique ! En tout cas cette description ne correspond pas à des spécifications : on ne connait ni les entrées, ni les sorties, ni les acteurs, ni les actions.

    Sinon, pour afficher ta liste de valeurs, je t'ai donné, dans l'autre discussion, une façon de faire, une des plus brutes, en terme d'affichage Swing.
    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.

  16. #36
    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
    Je ne vois pas bien le rapport entre l'objectif de ton stage et le programme sur lequel tu as travaillé, qui est tout au plus une moulinette one shot, et très loin du concept de framework générique ! En tout cas cette description ne correspond pas à des spécifications : on ne connait ni les entrées, ni les sorties, ni les acteurs, ni les actions.
    Bah si je pense qu'il y a un rapport sinon mes tuteurs ne m'auraît pas dit de faire ça après ce n'est que le début et faut dire que je ne suis pas un as de la POO java!

    Sinon, pour afficher ta liste de valeurs, je t'ai donné, dans l'autre discussion, une façon de faire, une des plus brutes, en terme d'affichage Swing.
    Oui merci j'ai vu sa mais lorsque j'execute ton code, ce n'est pas ce que je recherche je veux juste pouvoir lire mon résultat de la console sur une fenetre qui s'affiche à part lorsque je clique sur OK.

  17. #37
    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
    Oui merci j'ai vu sa mais lorsque j'execute ton code, ce n'est pas ce que je recherche je veux juste pouvoir lire mon résultat de la console sur une fenetre qui s'affiche à part lorsque je clique sur OK.
    On ne lit pas le résultat de la console dans un fenêtre qui s'affiche : c'est un non sens. Ce qui est parti dans la console n'est pas récupérable. Soit on l'intercepte, ce qui est une façon tordue de le faire, soit on utilise directement ce qu'on envoie dans la console, et on l'affiche dans la fenêtre. Ce que fait exactement le code que je t'ai donné.

    Maintenant, le problème c'est que tu n'as pas la moindre base de programmation. Je vais encore être obligé de te macher le boulot :

    Dans ton code, tu as une méthode :

    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 void traiterFichier(String zoneB, String zoneE, String valueB, String valueE, String filename) {
     
            String string = extract(filename, zoneB, zoneE);
     
    	if (string != null) {
    		Collection<String> mots = split(string, valueB, valueE);
    		for (String mot : mots) {
    			System.out.println(mot);
    		}
     
    	} else {
     
    		System.out.println("Aucune chaine trouvée comprise entre " + zoneB
    				+ " et " + zoneE);
    	}
     
    }
    Cette méthode crée une collection, qui est affichée dans la sortie standard (System.out). Maintenant, tu as besoin de cette collection pour pouvoir en faire autre chose. Donc il faut la sortir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public Collection<String> traiterFichier(String zoneB, String zoneE, String valueB, String valueE, String filename) {
     
            String string = extract(filename, zoneB, zoneE);
     
    	if (string != null) {
                    return split(string, valueB, valueE);
    	} else {
               return null;
    	}
     
    }
    Et tu changes ta méthode main pour qu'elle continue de faire ce qu'elle faisait avant :

    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
    public static void main(String[] args) {
     
    		String path;
    		if ( args.length>0 ) {
    			path = args[0];
    		}
    		else {
    			path = PATH;
    		}
     
                   Collection<String> mots = new Finally().traiterFichier(ZONE_B, ZONE_E, VALUE_B, VALUE_E, path);	
     
             	if (mots != null) {
    		        for (String mot : mots) {
    			    System.out.println(mot);
    		        }
     
    	       } else {
     
    		     System.out.println("Aucune chaine trouvée comprise entre " + ZONE_B
    				+ " et " + ZONE_E);
    	        }
     
     
    	}
    Et dans ton bouton, tu peux maintenant faire :

    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
     
    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> mots = new Finally().traiterFichier(ZONE_B, ZONE_E, VALUE_B, VALUE_E, PATH);
     
                                     if ( mots!=null ) {
                                               JOptionPane.showMessageDialog(null, new JScrollPane(new JList<String>(new Vector<String>(collection))));
                                     }
                                    else {
                                         JOptionPane.showMessageDialog(null, "Rien trouvé...");
                                    }
     
    			}	
     
    		});
    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.

  18. #38
    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
    On ne lit pas le résultat de la console dans un fenêtre qui s'affiche : c'est un non sens. Ce qui est parti dans la console n'est pas récupérable. Soit on l'intercepte, ce qui est une façon tordue de le faire, soit on utilise directement ce qu'on envoit dans la console, et on l'affiche dans la fenêtre. Ce que fait exactement le code que je t'ai donné.

    Maintenant, le problème c'est que tu n'as pas la moindre base de programmation. Je vais encore être obligé de te macher le boulot :
    Oui c'est vrai mais je compte profiter de ce stage pour bien me former et être opérationnel par la suite.

    J'ai remplacé tout ce que tu m'as énumérer ci dessus mais sa ne marche pas du tout

    code de 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
    import java.awt.EventQueue;
    import java.awt.FlowLayout;
    import java.awt.GridBagConstraints;
    import java.awt.GridBagLayout;
    import java.awt.Insets;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.File;
    import java.util.Collection;
     
    import javax.swing.AbstractButton;
    import javax.swing.JButton;
    import javax.swing.JFileChooser;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JList;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JTextField;
    import javax.swing.border.EmptyBorder;
     
     
    public class simplefenetre extends JFrame {
     
    	private JPanel contentPane;
    	private static JTextField textField;
    	private static JTextField textField_1;
    	private static JTextField textField_2;
    	private static JTextField textField_3;
    	private JTextField textField_4;
    	private AbstractButton btnOk;
     
     
     
    	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() { 
     
     
    		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(new GridBagLayout());
     
    		// Button "OK"
     
    		btnOk.addActionListener(new ActionListener() {
    					private AbstractButton zoneB;
    					private AbstractButton zoneE;
    					private AbstractButton valueB;
    					private AbstractButton valueE;
     
    					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> mots = new Finally().traiterFichier(ZONE_B, ZONE_E, VALUE_B, VALUE_E, PATH);
     
    		                                 if ( mots!=null ) {
    		                                           JOptionPane.showMessageDialog(null, new JScrollPane(new JList<String>()));
    		                                 }
    		                                else {
    		                                     JOptionPane.showMessageDialog(null, "Rien trouvé...");
    		                                }
     
    					}	
     
    				});
     
     
    		textField_4 = new JTextField();
    		contentPane.add(textField_4, new GridBagConstraints(0,0,2,1,1,0,GridBagConstraints.BASELINE_TRAILING, GridBagConstraints.HORIZONTAL, new Insets(2,2,2,2), 0, 0));
     
    		// 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 			
    			}
    		});
     
    		// On créer les composants de saisies .
    		JLabel zoneBLabel = new JLabel("ZONE_B");
    		contentPane.add(zoneBLabel, new GridBagConstraints(0,1,1,1,0,0,GridBagConstraints.BASELINE_TRAILING, GridBagConstraints.NONE, new Insets(2,2,2,2), 0, 0));
     
    		JLabel zoneELabel = new JLabel("ZONE_E");
    		contentPane.add(zoneELabel, new GridBagConstraints(0,2,1,1,0,0,GridBagConstraints.BASELINE_TRAILING, GridBagConstraints.NONE, new Insets(2,2,2,2), 0, 0));
     
    		JLabel valueBLabel = new JLabel("VALUE_B");
    		contentPane.add(valueBLabel, new GridBagConstraints(0,3,1,1,0,0,GridBagConstraints.BASELINE_TRAILING, GridBagConstraints.NONE, new Insets(2,2,2,2), 0, 0));
     
    		JLabel valueELabel = new JLabel("VALUE_E");
    		contentPane.add(valueELabel, new GridBagConstraints(0,4,1,1,0,0,GridBagConstraints.BASELINE_TRAILING, GridBagConstraints.NONE, new Insets(2,2,2,2), 0, 0));
     
    		textField = new JTextField(Finally.ZONE_B);
    		contentPane.add(textField, new GridBagConstraints(1,1,2,1,1,0,GridBagConstraints.BASELINE_LEADING, GridBagConstraints.HORIZONTAL, new Insets(2,2,2,2), 0, 0));
     
    		textField_1 = new JTextField(Finally.ZONE_E);
    		contentPane.add(textField_1, new GridBagConstraints(1,2,2,1,1,0,GridBagConstraints.BASELINE_LEADING, GridBagConstraints.HORIZONTAL, new Insets(2,2,2,2), 0, 0));
     
    		textField_2 = new JTextField(Finally.VALUE_B);
    		contentPane.add(textField_2, new GridBagConstraints(1,3,2,1,1,0,GridBagConstraints.BASELINE_LEADING, GridBagConstraints.HORIZONTAL, new Insets(2,2,2,2), 0, 0));
     
    		textField_3 = new JTextField(Finally.VALUE_E);
    		contentPane.add(textField_3, new GridBagConstraints(1,4,2,1,1,0,GridBagConstraints.BASELINE_LEADING, GridBagConstraints.HORIZONTAL, new Insets(2,2,2,2), 0, 0));
     
     
     
    		JPanel buttonPane = new JPanel(new FlowLayout(FlowLayout.TRAILING));
    		contentPane.add(buttonPane, new GridBagConstraints(0, 5, 3, 1, 1, 1, GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL, new Insets(2,2,2,2), 0, 0));
    		buttonPane.add(btnOk);
     
    		contentPane.add(btnParcourir, new GridBagConstraints(2,0,1,1,0,0,GridBagConstraints.BASELINE_LEADING, GridBagConstraints.NONE, new Insets(2,2,2,2),0,0));
     
    		// Button "ANNULER"
     
    		JButton btnAnnuler = new JButton("ANNULER");
    		btnAnnuler.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e) {
    				System.exit(0);
    			}
    		});
     
    		buttonPane.add(btnAnnuler);
    	}
     
    	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(textField.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 de finally :
    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
    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
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.Collection;
    import java.util.LinkedHashSet;
     
    public class Finally {
     
    	// Déclaration des 
     
    	public static final String ZONE_B = "#>";
    	public static final String ZONE_E = "#<";
    	public static final String VALUE_B = "{";
    	public  static final String VALUE_E = "}";
    	public  static final String PATH = "fichierCSH.txt";
     
    	// La fonction principale : le main
     
    	public static void main(String[] args) {
     
    		String path;
    		if ( args.length>0 ) {
    			path = args[0];
    		}
    		else {
    			path = PATH;
    		}
     
    		String string = extract(path); 
     
    		if (string != null) {
    			Collection<String> mots = split(string); 
    			for (String mot : mots) {
    				System.out.println(mot);
    			}
     
    		} else {
     
    			System.out.println("Aucune chaine trouvée comprise entre " + ZONE_B
    					+ " et " + ZONE_E);
     
    		}
    	}
     
    	/**
             * 
             * @param filename
             * @return
             */
     
    	private static String extract(String filename) { 
     
    		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;
     
    	}
     
    	/**
             * 
             * @param string
             * @return
             */
     
     
    	private static Collection<String> split(String string) {
     
    		 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;
    	}
     
    	public Collection<String> traiterFichier(String zoneB, String zoneE, String valueB,
    			String valueE, String filename) {
    		// TODO 
     
    	}
     
    }
    Tu vois une erreur toi?

  19. #39
    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
    Tu vois une erreur toi?
    Oui. Je ne sais pas comment tu as réussi à te débrouiller pour obtenir ça :

    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
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.Collection;
    import java.util.LinkedHashSet;
    
    public class Finally {
     
    	// Déclaration des 
    	
    	public static final String ZONE_B = "#>";
    	public static final String ZONE_E = "#<";
    	public static final String VALUE_B = "{";
    	public  static final String VALUE_E = "}";
    	public  static final String PATH = "fichierCSH.txt";
     
    	// La fonction principale : le main
    	
    	public static void main(String[] args) {
     
    		String path;
    		if ( args.length>0 ) {
    			path = args[0];
    		}
    		else {
    			path = PATH;
    		}
     
    		String string = extract(path); 
     
    		if (string != null) {
    			Collection<String> mots = split(string); 
    			for (String mot : mots) {
    				System.out.println(mot);
    			}
     
    		} else {
     
    			System.out.println("Aucune chaine trouvée comprise entre " + ZONE_B
    					+ " et " + ZONE_E);
     
    		}
    
    	}
     
    	/**
    	 * 
    	 * @param filename
    	 * @return
    	 */
    	
    	private static String extract(String filename) { 
     
    		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;
     
    	}
     
    	/**
    	 * 
    	 * @param string
    	 * @return
    	 */
    	
    	
    	private static Collection<String> split(String string) {
     
    		 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;
    	}
    
    	public Collection<String> traiterFichier(String zoneB, String zoneE, String valueB,
    			String valueE, String filename) {
    		[b]// TODO[b] 
    		
    	}
     
    }
    Tu ne vois pas qu'il n'y a qu'un commentaire dans traiterFichier et que, donc, ça risque pas de faire quelque chose, et que le code qui devrait être dans cette méthode a été foutu dans la méthode main().

    J'ai l'impression que tu es parti d'une très ancienne version et que tu la modifié à moitié en suivant que le tiers des indications que je t'ai donnée. Le pire, je t'ai redonné le code complet de traiterFichier et de main !

    Repars de l'ancienne bonne version (celle du dernier post où se trouve Finally) et applique les modifications pas à pas.

    Après, il y aura sûrement d'autres modifications à faire, comme par exemple, que l'exception "fichier non trouvé" remonte en dehors de traiterFichier, pour qu'elle s'affiche dans une fenêtre également (utilisation de throws). Mais chaque chose en son temps.
    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.

  20. #40
    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 ne vois pas qu'il n'y a qu'un commentaire dans traiterFichier et que, donc, ça risque pas de faire quelque chose, et que le code qui devrait être dans cette méthode a été foutu dans la méthode main().

    J'ai l'impression que tu es parti d'une très ancienne version et que tu la modifié à moitié en suivant que le tiers des indications que je t'ai donnée. Le pire, je t'ai redonné le code complet de traiterFichier et de main !

    Repars de l'ancienne bonne version (celle du dernier post où se trouve Finally) et applique les modifications pas à pas.

    Après, il y aura sûrement d'autres modifications à faire, comme par exemple, que l'exception "fichier non trouvé" remonte en dehors de traiterFichier, pour qu'elle s'affiche dans une fenêtre également (utilisation de throws). Mais chaque chose en son temps.
    Lol oui exactement, tu trouves toujours les bonnes hypothèses c'est fou.
    Nan en faite j'ai suivi ce que tu m'as dit et j'ai fais des erreurs dans mon code donc c'est pour ça que j'ai repris une autre version.. pour pouvoir recommenecer

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, 10h24
  2. Réponses: 6
    Dernier message: 19/02/2008, 20h48
  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, 17h39
  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, 11h48
  5. Réponses: 5
    Dernier message: 13/06/2006, 16h14

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