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 :

Ouverture d'une boite de dialogue


Sujet :

Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 12
    Points : 5
    Points
    5
    Par défaut Ouverture d'une boite de dialogue
    Bonjour, je lis dans un fichier une liste de noms que j'affiche ensuite dans un sous menu.
    je souhaite que pour chacun des noms, une boite de dialogue s'ouvre.
    mais je n'y arrive pas..


    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
     
     
    public void lireTest (JMenu menuTests){    
    //Attraper l'exception IOException 
     
      try {  
     
    //Création d'une nouvelle classe FileReader appelée file et permet de lire la liste des tests 
        FileReader file = new FileReader ("C:\\Documents and Settings\\Ju\\Mes documents\\Logiciels\\eclipse\\workspace\\Increment1\\espacededeveloppement\\liste.txt");    
    //Création d'un flux de caractères à tampon associé à l'objet FileReader  
        BufferedReader buff = new BufferedReader (file);    
        String line;   
     
    //Lecture du fichier ligne par ligne. Cette boucle se termine quand la méthode retourne la valeur null. 
     
      while ((line = buff.readLine()) != null) {    
         System.out.println(line);    
         JMenuItem test = new JMenuItem (line);  
         menuTests.add(test);  
     
         test.addActionListener( 
           new ActionListener(){ 
            public void actionPerformed(ActionEvent e) 
            { 
     
          choixanalyse(); 
     
            } 
           }   
     
         ); 
     
      }   
     
    //Fermeture du fichier et du buffer.  
      buff.close();    
      file.close();    
     
      } 
       catch (IOException e){    
     //Erreur de lecture de fichier                    
       System.out.println("Erreur --" + e.toString());    
        }    
      }     
     
    public void choixanalyse(){ 
     JButton[] analyse = new JButton[2]; 
     analyse[0]= new JButton ("Globale"); 
     analyse[1]= new JButton ("Par Stimulus");  
     int response = JOptionPane.showOptionDialog(null, 
     "Quel type d'analyse souhaitez-vous?", 
     "Analyse", 
     0, 
     JOptionPane.INFORMATION_MESSAGE, 
     null, 
     analyse, 
     analyse[2]); 
     
    } 
     
    }

    [balises CODE rajoutées par Braim]

  2. #2
    Nouveau membre du Club
    Inscrit en
    Juillet 2002
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 28
    Points : 34
    Points
    34
    Par défaut
    C'est koi exactement le problème??

    ça ne compile pas,
    ou alors quand tu exécute il ne se passe rien,
    ou alors quand tu exécute ça plante??

    PS: pense à utiliser la balise "Code" pour rendre ton message lisible...

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    Tt d'abord Excuse moi pour le code, j'avais pas trop suivi qu'il fallait le faire...je le ferai dorénavant...(je suis un peu nouvelle)
    en fait, ma liste de nom s'affiche bien dans mon menu, mé au clic sur un des noms, rien ne se passe

  4. #4
    Membre actif
    Inscrit en
    Avril 2004
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 238
    Points : 265
    Points
    265
    Par défaut
    Bonjour a la martinique (si je me trompe pas)

    Essaye un truc dans ce genre :
    Tu met l'actionListener sur ta classe (ca evite d'en creer un a chaque fois que tu lis une ligne ). Du coup tu fais addActionListener(this) pour chaque menuItem.
    Ensuite dans actionListener tu appelle ta fonction choixanalyse.

    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
    taClasse implements ActionListener{
     
    ...
     
    public void lireTest (JMenu menuTests){ 
    //Attraper l'exception IOException 
     
    try { 
     
    //Création d'une nouvelle classe FileReader appelée file et permet de lire la liste des tests 
    FileReader file = new FileReader ("C:\\Documents and Settings\\Ju\\Mes documents\\Logiciels\\eclipse\\workspace\\Increment1\\espacededeveloppement\\liste.txt"); 
    //Création d'un flux de caractères à tampon associé à l'objet FileReader 
    BufferedReader buff = new BufferedReader (file); 
    String line; 
     
    //Lecture du fichier ligne par ligne. Cette boucle se termine quand la méthode retourne la valeur null. 
     
    while ((line = buff.readLine()) != null){ 
      System.out.println(line); 
      JMenuItem test = new JMenuItem (line); 
      test.addActionListener(this); 
      menuTests.add(test); 
    } 
     
    //Fermeture du fichier et du buffer. 
    buff.close(); 
    file.close(); 
     
    } 
    catch (IOException e){ 
    //Erreur de lecture de fichier 
    System.out.println("Erreur --" + e.toString()); 
    } 
    } 
     
    public void choixanalyse(){ 
    JButton[] analyse = new JButton[2]; 
    analyse[0]= new JButton ("Globale"); 
    analyse[1]= new JButton ("Par Stimulus"); 
    int response = JOptionPane.showOptionDialog(null, 
    "Quel type d'analyse souhaitez-vous?", 
    "Analyse", 
    0, 
    JOptionPane.INFORMATION_MESSAGE, 
    null, 
    analyse, 
    analyse[2]); 
     
    }
     
    /* --- implements ActionListener --- */
    public void actionPerformed(ActionEvent e){
     choixanalyse();
    }
     
    }
    Voila c pas mal pour un debut.

  5. #5
    Futur Membre du Club
    Inscrit en
    Avril 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    Exact c'est bien la Martinique...cependant, je fé mes études à toulouse...
    En tous cas merci bien pour le code, je l'essaie et je te tiens au courant

  6. #6
    Futur Membre du Club
    Inscrit en
    Avril 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    Par contre, est ce que tu penses qu'il est possible qu'en fonction du nom de tests je puisse appliquer un action listener différent?

  7. #7
    Futur Membre du Club
    Inscrit en
    Avril 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    En fait j'ai essayer en mettant le ActionLsitener sur la classe mais ca ne marche toujours pas...mon programme fonctionne cependant lorsque je clique sur les noms qui apparaissent dans le sous menu, rien ne se passe

  8. #8
    Nouveau membre du Club
    Inscrit en
    Juillet 2002
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 28
    Points : 34
    Points
    34
    Par défaut
    Citation Envoyé par ju972
    Par contre, est ce que tu penses qu'il est possible qu'en fonction du nom de tests je puisse appliquer un action listener différent?
    dans la méthode actionPerformed(ActionEvent e)
    tu peux faire la chose suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     JMenuItem itemSource = (JMenuItem) e.getSource();
     String strFileName = itemSource.getText();
    comme ça tu récupère le nom du fichier sur lequel tu as cliqué et tu peux le passer à choixanalyse

  9. #9
    Futur Membre du Club
    Inscrit en
    Avril 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    ok j'ai compris, c cool...Je vois mieux comment faire
    mais paar contre, il ne se passe tjs rien lorsque je clique

  10. #10
    Nouveau membre du Club
    Inscrit en
    Juillet 2002
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 28
    Points : 34
    Points
    34
    Par défaut
    C bon j'ai trouvé 8)

    en fait y'a une exception qui apparait à l'exécution qui est attrapé par la classe JOptionPane (elle s'écrit dans la console, mais le programme ne plante pas)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    java.lang.ArrayIndexOutOfBoundsException: 2
            at TestJu.choixanalyse(TestJu.java:46)
            at TestJu.actionPerformed(TestJu.java:59)
            ..................
    le problème vient du analyse[2] dans ton appel à showOptionDialog car la taille du tableau est 2 et donc les index valide sont 0 ou 1

  11. #11
    Futur Membre du Club
    Inscrit en
    Avril 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    Trop bien merci beaucoup beaucoup beaucoup
    Par contre, dans le même principe à un clic je demande un mot de passe et j'aimerai que la fenetre s'affiche au centre, mais elle s'affiche en haut à gauche...
    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
    class MonJPanel extends JFrame {
    		JTextField username = new JTextField(15);
    		JPasswordField password = new JPasswordField(15);
     
    	public MonJPanel(){
     
    		super("Login");
    		setSize(310,150);
    		Container content = getContentPane();
    		JPanel pane=new JPanel();
    		pane.setLayout(new GridLayout (3,1));
    		JLabel usernameLabel= new JLabel ("Nom d'utilisateur:");
    		JLabel passwordLabel = new JLabel ("Mot de passe:");
    		pane.add(usernameLabel);
    		//pane.add(usernameLabel,BorderLayout.WEST);
    		pane.add(username);
    		//pane.add(username,BorderLayout.EAST);		
    		pane.add(passwordLabel);		
    		//pane.add(passwordLabel,BorderLayout.WEST);
    		pane.add(password);
    		//pane.add(password,BorderLayout.EAST);
    		content.add(pane,BorderLayout.CENTER);
    		//setContentPane(pane);
    		JPanel buttons = new JPanel();
    		buttons.add(new JButton("OK"));
    		buttons.add(new JButton("Annuler"));
    		content.add(buttons,BorderLayout.SOUTH);
    		//content.add(buttons,BorderLayout.CENTER);
    		show();
     
    	}
     
    	}
     
     
    	optioncreerN.addActionListener(
    		new ActionListener(){
    			public void actionPerformed(ActionEvent e)
    				{
    //creation d'un objet JInternalFrame. Le constructeur contient 5 arguments.
    //une chaine pour la barre de titre de la fenetre interne:ici login
    //un boolean pour indiquer si la fenetre est redimensionnable par l'utilisateur
    //un boolean pour indiquer si l'utilisateur peut agrandir la fenetre
    //un dernier boolean pour préciser si l'utilisateur peut réduire la fenetre
     
    				JInternalFrame autre = new JInternalFrame("Login",false,false,false,false);
    //définition d'un panneau de contenu du JInternalFrame auquel on peut rattacher des composants
     
    				Container c =autre.getContentPane();
    //Creation d'une instance de la classe MonJPanel
    				MonJPanel panneau = new MonJPanel();
    // on ajoute cette instance, au panneau de contenu											
    				c.add(panneau,BorderLayout.WEST);
    //la fenetre enfant doit etre opaque
    				autre.setOpaque(true);
    //ajoute le JInternalFrame au JDesktopPane
    				lebureau.add(autre);
    					}
    				}
    		);

  12. #12
    Membre actif
    Inscrit en
    Avril 2004
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 238
    Points : 265
    Points
    265

  13. #13
    Futur Membre du Club
    Inscrit en
    Avril 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    Merci beaucoup c super sympa!!!
    tu m'as bien aidé en tt cas!

  14. #14
    Membre actif
    Inscrit en
    Avril 2004
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 238
    Points : 265
    Points
    265
    Par défaut
    On est la pour ca 8)
    Pense au tag résolu (en bas à gauche).
    Merci

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

Discussions similaires

  1. Pas de fichiers à l'ouverture d'une boite de dialogue
    Par mathrix77 dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 02/02/2008, 00h21
  2. Réponses: 6
    Dernier message: 15/05/2007, 18h54
  3. ouverture d'une boite de dialogue
    Par Arcan dans le forum JSF
    Réponses: 2
    Dernier message: 28/03/2007, 09h46
  4. pb sur ouverture d'une boite de dialogue
    Par DWade dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 03/07/2006, 18h20

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