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 JFileChooser et freeze


Sujet :

AWT/Swing Java

  1. #1
    Membre éprouvé Avatar de Lady
    Femme Profil pro
    Développeur Java
    Inscrit en
    Mars 2003
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2003
    Messages : 678
    Par défaut Problème JFileChooser et freeze
    Je ne sais pas is c'est ici que je doit poster mais le JFileChooser faisant partie de Swing ...

    enfin bref : je ne sais pas pourquoi une fois sur deux quand je selectionne un fichier avec mon JFileChooser toute mon aplication plante, alors que l'autre moitié du temps tout marche correctement et cela avec le même fichier sélectionné.

    Voici le code , est ce qu'il y a une erreur que je ne gere pas ? le problème c'est que je n'ai aucun exception...

    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
     
    class BrowseListener implements ActionListener
    	{
    		public void actionPerformed(ActionEvent e)
    		{
    			String fich="";
    			JFileChooser    _chooser = new JFileChooser();
    			_chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
    			JPanel pan=new JPanel();
    			try{
    				int returnVal = _chooser.showOpenDialog(pan);
     
    				if(returnVal == JFileChooser.APPROVE_OPTION) {
    					fich=_chooser.getSelectedFile().getPath();
    					_path.setText(fich);
    				}
     
    				}catch(Exception ex){
    					JOptionPane.showMessageDialog(null,"file error! retry please");
    					return;
     
    				}
    		}
    	}

    En moins grave il m'arrive aussi d'avoir cet exception : Basic L&F directory loader" java.lang.NullPointerException.

    Enfin si quelqu'un peu m'éclairer surtout pour mon problème de freeze , merci d'avance!

  2. #2
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    Remplace

    par

    et tu en sauras peut-être plus.

    En général il est déconseillé de catcher Exception directement.

  3. #3
    Membre éprouvé Avatar de Lady
    Femme Profil pro
    Développeur Java
    Inscrit en
    Mars 2003
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2003
    Messages : 678
    Par défaut
    Citation Envoyé par natha
    Remplace

    par

    et tu en sauras peut-être plus.

    En général il est déconseillé de catcher Exception directement.
    oki j'essayerai. merci

  4. #4
    Membre éprouvé Avatar de Lady
    Femme Profil pro
    Développeur Java
    Inscrit en
    Mars 2003
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2003
    Messages : 678
    Par défaut
    Bon j'ai essayer ca ne ma rien dit de plus.
    je freeze et après ca m'empeche de relancer mon programme car du coup la vase de donnée derrière n'a pas été fermer correctement .

  5. #5
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    Pardon, j'aurais dû faire une réponse plus complète :

    Au lieu de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    }catch(Exception ex){
    					JOptionPane.showMessageDialog(null,"file error! retry please");
    					return;
     
    				}
    Tu mets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    }catch(Throwable t){
    	t.printStackTrace();
    }

  6. #6
    Membre éprouvé Avatar de Lady
    Femme Profil pro
    Développeur Java
    Inscrit en
    Mars 2003
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2003
    Messages : 678
    Par défaut
    Citation Envoyé par natha
    Pardon, j'aurais dû faire une réponse plus complète :

    Au lieu de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    }catch(Exception ex){
    					JOptionPane.showMessageDialog(null,"file error! retry please");
    					return;
     
    				}
    Tu mets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    }catch(Throwable t){
    	t.printStackTrace();
    }
    ah oui en effet je n'affiche pas les Throwable .... c'est ca de reprendre le code sans réfléchir ... alala

  7. #7
    Membre éprouvé Avatar de Lady
    Femme Profil pro
    Développeur Java
    Inscrit en
    Mars 2003
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2003
    Messages : 678
    Par défaut
    Bon après quelque println finalement il semblerais que ce soi le setText du JTexField qui merde mais je vois vraiment pas pourquoi ...

  8. #8
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    Pitêtre _path = null ?
    Donne le message d'erreur complet et plus de code si tu veux de l'aide efficace. La je ne fais que supposer et je commence à me lasser.

  9. #9
    Membre éprouvé Avatar de Lady
    Femme Profil pro
    Développeur Java
    Inscrit en
    Mars 2003
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2003
    Messages : 678
    Par défaut
    Citation Envoyé par natha
    Pitêtre _path = null ?
    Donne le message d'erreur complet et plus de code si tu veux de l'aide efficace. La je ne fais que supposer et je commence à me lasser.
    Le problème est qu'il n'y a pas de message d'erreur .. mon appli freeze tout simplement et je suis obligé de la killer .

    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
     
    class BrowseListener implements ActionListener
    	{
    		public void actionPerformed(ActionEvent e)
    		{
    			String fich="";
    			JFileChooser    _chooser = new JFileChooser();
    			_chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
    			JPanel pan=new JPanel();
    			try{
    				int returnVal = _chooser.showOpenDialog(pan);
    				System.out.println("ici 1");
    				if(returnVal == JFileChooser.APPROVE_OPTION) {
    					System.out.println("ici 2");
    					fich=_chooser.getSelectedFile().getPath();
    					System.out.println("ici 3");
    					_path.setText(fich);
    					System.out.println("ici 4");
    				}
    				System.out.println("ici 5");
    				}catch(Throwable t){
    					t.printStackTrace();
    					JOptionPane.showMessageDialog(null,"file error! retry please");
    					return;
     
    				}
    		}
    	}
    les fois ou je freeze (car cela ne se produit pas à chaque fois) le dernier print effectué est le "ici 3" et mon appli ne répond plus je peut même pas fermer la fenêtre.

  10. #10
    Membre chevronné Avatar de broumbroum
    Profil pro
    Inscrit en
    Août 2006
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 406
    Par défaut
    as-tu essayer sans donner de parent component a la methode showOpenDialog?

  11. #11
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    Donne nous quelque chose d'exécutable. La classe complète avec un main et tout pour qu'on puisse reproduire le problème.
    On ne peut rien faire de ton bout de code sans savoir ce qu'il y a autour.
    Le pire c'est que c'est sûrement une petite erreur bête qui traîne.

  12. #12
    Membre éprouvé Avatar de Lady
    Femme Profil pro
    Développeur Java
    Inscrit en
    Mars 2003
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2003
    Messages : 678
    Par défaut
    Citation Envoyé par broumbroum
    as-tu essayer sans donner de parent component a la methode showOpenDialog?

    non je vais essayer .. je me posais la question l'erreur pourrais t'elle provenir de mon OS ? je suis sous fedora .

    voici le code en JFrame de ma classe (elle est en JInternalFrame dans mon programme)

    je n'est pas réussi à refaire le freeze par contre de temps en temps le programme me fait : Exception in thread "Basic L&F directory loader" et mon processus s'arrete.


    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
     
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.IOException;
     
    import javax.swing.JButton;
    import javax.swing.JComboBox;
    import javax.swing.JFileChooser;
    import javax.swing.JFrame;
    import javax.swing.JInternalFrame;
    import javax.swing.JLabel;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
     
     
     
    public class NewBaseFrame extends JFrame{
     
     
    	NewBaseFrame _me;
    	JTextField _dbName, _path;
    	JComboBox _chooseType;
     
    	NewBaseFrame()
    	{
    		super("New Base Creation");
    		_me=this;
     
     
    		this.setLayout(null);
    		JLabel choose = new JLabel("enter a name for the new DataBase:");
    		choose.setBounds(40, 10, 200, 20);
    		this.add(choose);
    		_dbName = new JTextField();
    		_dbName.setBounds(40, 35, 200, 25);
    		this.add(_dbName);
     
    		JLabel type = new JLabel("type of the new dataBase :");
    		type.setBounds(20, 60, 200, 20);
    		this.add(type);
     
    		String[] typelist = {"Eucaryote","Procaryote"};
    		_chooseType = new JComboBox(typelist);
    		_chooseType.setBounds(40, 80, 200, 22);
    		this.add(_chooseType);
     
    		JButton ManualAdd = new JButton("On-line Filling");
    		ManualAdd.setBounds(25,120,250,30);
    		ManualAdd.addActionListener(new ManualFillListener());
    		this.add(ManualAdd);
     
    		JLabel enterfile= new JLabel("Or create from a data file:");
    		enterfile.setBounds(20,155,200,20);
    		this.add(enterfile);
    		_path = new JTextField();
    		_path.setBounds(20,175,200,25);
    		this.add(_path);
    		JButton browse = new JButton("Browse");
    		browse.setBounds(220,177,60,20);
    		browse.addActionListener(new BrowseListener());
    		this.add(browse);
     
     
    		JButton fill = new JButton("Fill");
    		fill.setBounds(25,201,250,25);
    		fill.addActionListener(new FillListener());
    		this.add(fill);
    		JButton cancel = new JButton("Cancel");
    		cancel.setBounds(200,240,70,25);
    		cancel.addActionListener(new CancelListener());
    		this.add(cancel);
     
    		this.setBounds(250, 175, 300,300);
    		this.setVisible(true);
     
     
     
     
    	}
     
     
    	class ManualFillListener implements ActionListener
    	{
    		public void actionPerformed(ActionEvent e)
    		{
     
    		}
    	}
     
    	class BrowseListener implements ActionListener
    	{
    		public void actionPerformed(ActionEvent e)
    		{
    			String fich="";
    			JFileChooser    _chooser = new JFileChooser();
    			_chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
    			JPanel pan=new JPanel();
    			try{
     
    				int returnVal = _chooser.showOpenDialog(pan);
    				System.out.println("ici 1");
    				if(returnVal == JFileChooser.APPROVE_OPTION) {
    					System.out.println("ici 2");
    					fich=_chooser.getSelectedFile().getPath();
    					System.out.println("ici 3");
    					_path.setText(fich);
    					System.out.println("ici 4");
    				}
    				System.out.println("ici 5");
    				}catch(Throwable t){
    					t.printStackTrace();
    					JOptionPane.showMessageDialog(null,"file error! retry please");
    					return;
     
    				}
    		}
    	}
     
    	class FillListener implements ActionListener
    	{
    		public void actionPerformed(ActionEvent e)
    		{
     
    		}
    	}
     
    	class CancelListener implements ActionListener
    	{
    		public void actionPerformed(ActionEvent e)
    		{
    			_me.dispose();
    			System.exit(0);
    		}
    	}
     
     
    	public static void main(String[] args) {
     
    		new NewBaseFrame();
    	}
     
    }

  13. #13
    Membre éprouvé Avatar de Lady
    Femme Profil pro
    Développeur Java
    Inscrit en
    Mars 2003
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2003
    Messages : 678
    Par défaut
    Bon en continuant mon programme une nouvelle erreur arrive :

    de temps en temps mon JFilechooser n'affiche pas les scrollbars pour le choix de fichier du coup je ne peut pas acceder a la liste entière , ca me le faisait déjà avant mais a ce moment la tout mes fichier tenant dans la partie visible de la fenêtre donc ca m'avais pas interpelée .

  14. #14
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    J'ai exécuté ton code et n'ai eu aucun problème.
    Vu que tu parles d'une erreur de Look'n Feel il se pourrait bien que ton jre fonctionne mal. Il faudrait peut-être que tu essaies de forcer un autre look and feel genre Metal. Regarde la FAQ pour savoir comment on fait ça.

  15. #15
    Membre éprouvé Avatar de Lady
    Femme Profil pro
    Développeur Java
    Inscrit en
    Mars 2003
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2003
    Messages : 678
    Par défaut
    Citation Envoyé par natha
    J'ai exécuté ton code et n'ai eu aucun problème.
    Vu que tu parles d'une erreur de Look'n Feel il se pourrait bien que ton jre fonctionne mal. Il faudrait peut-être que tu essaies de forcer un autre look and feel genre Metal. Regarde la FAQ pour savoir comment on fait ça.

    Ok de toute facon je pensais changer le look and feel .. celui de fedora c'est pas le pied lol .
    Je vais peut etre même tenter un reinstallation de java celui-ci m'ayant fait quelques problème ce matin je commence à me poser des questions sur lui lol ...

    Bon Si ca marche pas je contournerais donc on va dire que mon problème est résolu ^^

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

Discussions similaires

  1. Problème windows 7 freeze partiel
    Par manon49f dans le forum Windows 7
    Réponses: 1
    Dernier message: 19/04/2013, 21h33
  2. JFileChooser qui freeze et écoute de System.in
    Par Lady dans le forum Composants
    Réponses: 1
    Dernier message: 11/12/2010, 14h26
  3. problème JFILECHOOSER + tri fichier
    Par magique76 dans le forum Applets
    Réponses: 2
    Dernier message: 07/09/2007, 17h08
  4. Problème JFileChooser et garbageCollector
    Par seiryujay dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 19/06/2006, 17h30
  5. problème avec JFileChooser
    Par Baptiste Wicht dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 15/12/2005, 20h51

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