[JAVA] Problème jFileChooser

Résolu/Fermé
Blunderer Messages postés 273 Date d'inscription mardi 17 juillet 2012 Statut Membre Dernière intervention 6 décembre 2012 - 26 juil. 2012 à 16:59
Blunderer Messages postés 273 Date d'inscription mardi 17 juillet 2012 Statut Membre Dernière intervention 6 décembre 2012 - 27 juil. 2012 à 10:28
Bonjour,

J'ai un jFileChooser que j'ouvre en appuyant sur un bouton.
Tout va bien. Ensuite je choisis le dossier que je veux sélectionner (je suis en mode DIRECTORY_ONLY).
Puis je cliques sur Open. Et là, je dois recliquer sur Open pour que la fenêtre se ferme...
Pourquoi ? oO

Voici mon code :
    private void jFileChooser1ActionPerformed(java.awt.event.ActionEvent evt) {
        if (jFileChooser1.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
            Main.folder_for_reports = jFileChooser1.getSelectedFile().toString();
            System.out.println("Selection ok");
            this.dispose();
        }
        else {
            Main.folder_for_reports = null;
            System.out.println("Selection not ok");
            this.dispose();
        }
    }




A voir également:

1 réponse

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
26 juil. 2012 à 18:03
C'est bizarre que le showOpenDialog soit à l'intérieur d'un ActionPerformed pour le chooser, il faudrait voir le code complet pour se remettre dans le contexte, mais j'ai l'impression qu'en fait tu ouvres deux fois la fenêtre... Voici un exemple correct :

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JTextArea;

public class Test 
{	
	public static void main(String...args)
	{
		final JFrame frame = new JFrame();		
		final JButton button = new JButton("Click");		
		final JFileChooser chooser = new JFileChooser();
		final JTextArea text = new JTextArea();
		
		button.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{	            
				if (chooser.showOpenDialog(frame) == JFileChooser.APPROVE_OPTION)
				{
		            text.setText(chooser.getSelectedFile().getAbsolutePath());
		            System.out.println("Selection OK");
		        }
		        else 
		        {
		        	text.setText("");
		            System.out.println("Selection KO");
		        }
			}			
		});
		
		frame.setLayout(new GridLayout(2,1));
		frame.add(button);
		frame.add(text);
		frame.pack();
		frame.setVisible(true);		
	}
}
0
Blunderer Messages postés 273 Date d'inscription mardi 17 juillet 2012 Statut Membre Dernière intervention 6 décembre 2012 83
26 juil. 2012 à 18:05
je vais tester ca mais il ne faut pas faire de dispose ??
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
26 juil. 2012 à 18:07
mon exemple, n'est qu'un exemple... je n'ai pas mis tout ce qu'il faudrait, l'important à voir c'est que le showOpenDialog est dans l'actionListener du JButton, pas dans celui du JFileChooser qui n'a pour moi pas de sens...
0
Blunderer Messages postés 273 Date d'inscription mardi 17 juillet 2012 Statut Membre Dernière intervention 6 décembre 2012 83
26 juil. 2012 à 18:09
d'accord je teste... :)
merci :D
0
Blunderer Messages postés 273 Date d'inscription mardi 17 juillet 2012 Statut Membre Dernière intervention 6 décembre 2012 83
27 juil. 2012 à 10:28
merci beaucoup !!!! ca marche super bien :)
0