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

 Java Discussion :

passage parametres aprés actionPerformed à une classe


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Inscrit en
    Août 2007
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 308
    Billets dans le blog
    1
    Par défaut passage parametres aprés actionPerformed à une classe
    Bonjour à tous,

    Comme je suis débutante en java, je viens vers vous:
    ce que je veux faire c'est de sélectionner un fichier enuiste appliquer sur ce fichier un traitement.
    donc pour la sélection, j'ai utilisé FileDialog, c'est ok j'arrive à récupérer le nom et le chemin du fichier selectionné
    le probleme c'est que je voudrai que mon code soit modulaire donc je veux passer le nom et le chemin du fichier à une autre classe situé dans un autre fichier mais dans le meme package pour que cette classe execute le traitement aprés que la méthode actionPerformed soit executée
    voilà, pouvez-vous me dire comment?
    merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 28
    Par défaut
    Bonjour,

    Tu peux passer le fichier via à un autre objet en passant par une méthode sur cet objet. Il suffit que la méthode en question soit publique ou package visible.

    Comme ce que tu cherches à faire est très simple, je pense que le mieux serait de nous montrer ce que tu as essayé de faire et que tu nous expliques pourquoi ça ne te convient pas

  3. #3
    Membre éclairé

    Inscrit en
    Août 2007
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 308
    Billets dans le blog
    1
    Par défaut
    OK, je m'explique: j'ai la classe ChoixFichier qui est la suivante qui me permet de sélectionner un fichier via un FileDialog

    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
     
     
    package p;
    import java.awt.*;
    import java.awt.event.*;
     
        public class ChoixFichier extends Frame 
         implements ActionListener {
     
         TextArea zoneTexte=new TextArea();
         FileDialog fDial;
     
     
          public ChoixFichier() {
             super("Sélection de fichiers");
             fDial=new FileDialog(this, "Choisir", FileDialog.LOAD);
             // Définition et affichage du système de menus
             MenuBar mb=new MenuBar();
             setMenuBar(mb);
             Menu m1=new Menu("Fichier");
             mb.add(m1);
             MenuItem mi1=new MenuItem("Sélection...");
             mi1.setActionCommand("select");
             m1.add(mi1);
             mi1.addActionListener(this);
             MenuItem mi2=new MenuItem("Quitter");
             mi2.setActionCommand("quitter");
             m1.add(mi2);
             mi2.addActionListener(this);
             //zone texte
             add(BorderLayout.CENTER,zoneTexte);
             zoneTexte.setEditable(false);
           //  fermeture de la fenêtre 
         addWindowListener(new Fermeture());
             //taille et position
             pack();
             setBounds(50,50,300,400);
             //affichage
             setVisible(true);
     
            }
     
     
     
         public void actionPerformed(ActionEvent e) {
             if (e.getActionCommand().equals("quitter")) System.exit(0);
             else if (e.getActionCommand().equals("select")) {
              fDial.setVisible(true);
              String nom=fDial.getFile();
              if (nom!=null) {
               String dir=fDial.getDirectory();
               zoneTexte.append(dir+nom+"\n");  
     
              }
              else zoneTexte.append("Sélection annulée.\n");
             }
     
         }
     
     
     
     
        }
    dans une autre classe, je voudrai faire appel à un programme externe (ça c'est OK). Ce programme doit prendre comme input le fichier selectionné.


    la classe est la suivante:
    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
     
     
    package p;
     
     
    import java.io.IOException;
     
     
     
     
    public class Programme {
     
     
    	 public void execute() throws IOException { 
     
    	        	Runtime rt = Runtime.getRuntime();
    	      	String[] s = {"monRepertoire/./monProg", "-i", "/cheminInPut/data_BDA2.txt", "-a", "2", "-d", "0",};
     
     
    	        	final Process process = rt.exec(s);
     
     
     
     
    	 }}

    dans le main, je veux faire appel à la classe Programme en lui passant comme parametre le fichier selectionné:
    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
     
     
    public class Principale
    {
        public static void main(String args[]) throws IOException
        {	  
        	System.out.println("Ouverture de l'application...");
            ChoixFichier fr=new ChoixFichier();
        	System.out.println("nom fichier  ");
     
     
     
     
          	//appel a mon Programme
          	Programme prog;
    		prog=new Programme();
    		prog.execute();
     
               }
     
     
        }



    voilà, j'espère que c'est clair.

  4. #4
    Membre éclairé

    Inscrit en
    Août 2007
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 308
    Billets dans le blog
    1
    Par défaut
    je sais que la méthode execute devra être modifiée pour accepter un parametre qui est le nom et le chemin du fichier
    le problème, je ne sais pas comment je vais acceder à ces parametres au niveau du main

  5. #5
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 35
    Par défaut
    Salut,
    Je ne suis pas un expert non plus mais tu dvrais peu être éssayer de créer une méthode getFile() dans ta classe choixfichier qui te renverrais le fichier sélectioner.

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    bonjour,

    Vu le fonctionnement de swing, tu pourra difficilement le faire depuis le main. En effet, a partir du moment ou tu affiche ta fenetre, le main continue à s'exécuté. Ce qui siginifie que, le temps qu'un utilisateur sélectionne un fichier, le main aura depuis longtemps fini de s'exécuter. Normalement, quand on joue avec du swing, on travaille avec les action listener. Ici, dans ton actionPerformed, c'est là que tu dois appele ta classe exécutant le programme. Donc tu aurais quelque chose dans ce gout là:

    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
     
    public void actionPerformed(ActionEvent e) {
             if (e.getActionCommand().equals("quitter")) System.exit(0);
             else if (e.getActionCommand().equals("select")) {
              fDial.setVisible(true);
              String nom=fDial.getFile();
              if (nom!=null) {
               String dir=fDial.getDirectory();
               zoneTexte.append(dir+nom+"\n");  
               Programme prog = new Programme(dir,nom);
               prog.execute();
              }
              else zoneTexte.append("Sélection annulée.\n");
             }
     
         }

Discussions similaires

  1. Réponses: 4
    Dernier message: 08/02/2008, 13h01
  2. passage des variables d'une classe à une autre
    Par zibou7 dans le forum Langage
    Réponses: 4
    Dernier message: 19/02/2007, 16h46
  3. PB de passage d'argument dasn une classe
    Par Naelhem dans le forum C++
    Réponses: 13
    Dernier message: 26/10/2006, 20h03
  4. [VB.NET] passage d'arguments d'une classe(form1) à une autre
    Par zouhib dans le forum Windows Forms
    Réponses: 5
    Dernier message: 05/05/2006, 16h54
  5. Passage de paramètre d'une classe à une autre
    Par semenzato dans le forum C++
    Réponses: 3
    Dernier message: 21/09/2005, 13h59

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