UTILISATION D'UN JFILECHOOSER

cs_polo12 Messages postés 15 Date d'inscription mardi 15 octobre 2002 Statut Membre Dernière intervention 29 octobre 2010 - 30 nov. 2002 à 22:12
cs_farefoucha Messages postés 3 Date d'inscription lundi 30 avril 2012 Statut Membre Dernière intervention 8 mai 2013 - 8 mai 2013 à 11:34
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/15395-utilisation-d-un-jfilechooser

cs_farefoucha Messages postés 3 Date d'inscription lundi 30 avril 2012 Statut Membre Dernière intervention 8 mai 2013
8 mai 2013 à 11:34
Bonjour svp je suis débutante en java et j'ai un projet ,je veux créer un bouton importer ,qui sert à importer un fichier excel vers un jTable ou je peux (modifier ,ajouter etc) ,j'ai vraiment besoin de help d'avance merci
thandorsnake Messages postés 1 Date d'inscription mercredi 20 juillet 2011 Statut Membre Dernière intervention 13 janvier 2013
13 janv. 2013 à 17:28
pour ceux qui recherche une solution plus rapide :
se code est tester et fonctionnel sous netbean 7.2 :

// je ne suis pas sur pour les imports mais ils vous seront demander après la copie du code dans netbean par exemple.
import javax.swing.tree.DefaultMutableTreeNode;

public class Principal extends javax.swing.JFrame {

private DefaultMutableTreeNode racine;
private JTree arbre;

public Principal() {
initComponents();

// insertion de l'arbre qui va être créé dans le jTree intégré au design
listRoot(VotreJTree);
}

private void listRoot(JTree monJtree){
this.racine = new DefaultMutableTreeNode();

for(File file : File.listRoots()){
DefaultMutableTreeNode lecteur = new DefaultMutableTreeNode(file.getAbsolutePath());
try {
for(File nom : file.listFiles()){
DefaultMutableTreeNode node = new DefaultMutableTreeNode(nom.getName()+"\");
lecteur.add(this.listFile(nom, node));
}
} catch (NullPointerException e) {}

this.racine.add(lecteur);
}
//Nous créons, avec notre hiérarchie, un arbre
JTree unArbre = new JTree(this.racine);
monJtree.setModel(unArbre.getModel());
}
private DefaultMutableTreeNode listFile(File file, DefaultMutableTreeNode node){
int count = 0;

if(file.isFile())
return new DefaultMutableTreeNode(file.getName());
else{
File[] list = file.listFiles();
if(list == null)
return new DefaultMutableTreeNode(file.getName());

for(File nom : list){
count++;
//Pas plus de 5 enfants par noeud
if(count < 5){
DefaultMutableTreeNode subNode;
if(nom.isDirectory()){
subNode = new DefaultMutableTreeNode(nom.getName()+"\");
node.add(this.listFile(nom, subNode));
}else{
subNode = new DefaultMutableTreeNode(nom.getName());
}
node.add(subNode);
}
}
return node;
}
}

et voilà, c'est le code d'un ami mais vu que j'ai aussi pas mal recherché sur le web, je vous le transmet.

ah, aussi, rien besoin dans le main.
mimaema Messages postés 8 Date d'inscription vendredi 22 avril 2011 Statut Membre Dernière intervention 28 février 2012
17 févr. 2012 à 15:19
Bonjour , j'ai besoin de récupérer plusieurs fichiers au lieu d'un seul , et c'est ma première expérience avec JFileChooser !

merci d'avance
cs_inconnu26 Messages postés 1 Date d'inscription mercredi 24 février 2010 Statut Membre Dernière intervention 24 février 2010
24 févr. 2010 à 00:27
ne pourrait on pas ecrire tout simplement :

//***********************************************************************

if(!ChoixFS.getSelectedFile().getAbsolutePath().endsWith(".txt")){
//ici throws error ou reagit au fait que ca nest pas au bon format
}

//***********************************************************************

...?

merci ;)
khaledinfor Messages postés 14 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 7 juin 2009
14 janv. 2009 à 14:46
salut
tré bien
didoux95 Messages postés 845 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 1 août 2017 2
6 mars 2007 à 12:59
slt.
je te donne la class que j'ai utiliser pour une de mes appli

// Nom du prog: Decoupeur_MP3
// Auteur: Jean-Baptiste F.
// Date: 21:54 19/02/2007

import java.io.File;
import java.util.*;
import javax.swing.*;
import javax.swing.filechooser.*;

public class FiltreExtensible extends FileFilter{

//Description et extensions acceptées par le filtre
private String description;
private List<String> extensions;


//Constructeur à partir de la description
public FiltreExtensible(String description){
if(description == null){
throw new NullPointerException("La description ne peut être null.");
}
this.description = description;
this.extensions = new ArrayList<String>();
}


//Implémentation de FileFilter
public boolean accept(File file){
if(file.isDirectory() || extensions.size()==0) {
return true;
}
String nomFichier = file.getName().toLowerCase();
for(String extension : extensions){
if(nomFichier.endsWith(extension)){
return true;
}
}
return false;
}

public String getDescription(){
StringBuffer buffer = new StringBuffer(description);
buffer.append(" (");
for(String extension : extensions){
buffer.append(extension).append(" ");
}
return buffer.append(")").toString();
}


//Quelques méthodes utilitaires
public void setDescription(String description){
if(description == null){
throw new NullPointerException("La description ne peut être null.");
}
this.description = description;
}

public void addExtension(String extension){
if(extension == null){
throw new NullPointerException("Une extension ne peut être null.");
}
extensions.add(extension);
}

public void removeExtension(String extension){
extensions.remove(extension);
}

public void clearExtensions(){
extensions.clear();
}

public List<String> getExtensions(){
return extensions;
}
}

//**********************************
et voici comment tu l'utilise:
//**********************************
ChoixFS = new JFileChooser();
ChoixFS.setFileSelectionMode(JFileChooser.FILES_ONLY);
ChoixFS.setAcceptAllFileFilterUsed(false);

FiltreExtensible Filtre = new FiltreExtensible("Fichier audio mp3");
Filtre.addExtension(".mp3");
ChoixFS.addChoosableFileFilter(Filtre);

if (ChoixFS.showOpenDialog(null) == JFileChooser.APPROVE_OPTION){
SaisieEmplacementFS.setText("" + ChoixFS.getSelectedFile().getAbsolutePath());
}
//******************************************
voila. +
liquideshark Messages postés 32 Date d'inscription mercredi 2 août 2006 Statut Membre Dernière intervention 29 mai 2007
5 mars 2007 à 22:46
Salut DIDOUX95

jai etendus la class filechooser voici un appercu:::
.................................................................
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
JFileChooser chooser = new JFileChooser();
chooser.setApproveButtonText("Ouvrir");
chooser.setDialogTitle("Ouvrir fichier texte");
chooser.setFileSelectionMode(chooser.FILES_ONLY);

GFilefilter myfilter new GFilefilter();

PROBLEME 0 CE NIVEAU
comment ?utilisé la class GFilefilter que je viens de crée???
===============================================================
int bouton_ouvrir = chooser.showOpenDialog(null);
if(bouton_ouvrir == chooser.APPROVE_OPTION){
jTextArea1.setText(chooser.getSelectedFile().getPath());
}

}

//la class GFILEFILTER >>>><<<<
class GFilefilter extends FileFilter {


public boolean accept(File f) {
return f.getName().toLowerCase().endsWith(".txt");
}

public String getDescription() {
return ".txt files";
}

}
..................................................................
didoux95 Messages postés 845 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 1 août 2017 2
5 mars 2007 à 16:12
Bonjour a tous.
liquideshark >> tu creer un filefilter avec l'extension que tu veux, et tu l'ajoute a ton JFileChooser.
Ensuite si tu veux ne pouvoir selectionner QUE des fichier txt tu fais ".setAcceptAllFileFilterUsed(false);" sur ton JFilChooser.

+
spyder92 Messages postés 5 Date d'inscription samedi 2 décembre 2006 Statut Membre Dernière intervention 14 mars 2007
5 mars 2007 à 10:41
Bonjour à tous,
J'utilise le JFileChooser pour mon application pour selectionner le fichier qui sera copier par mon appli et mon problème est que quand je fè un clique sur un fichier j'ai la possibilité de renommer le fichier ce qui pour des problemes de sécurité n'est pas envisageable. Je voudrais que l'utilisateur puisse selectionner le fichier mais sans avoir la possibilité de le renommer.
Si qq'un sait comment je peux désactiver cette option son aide est bienvenue.
merci!
liquideshark Messages postés 32 Date d'inscription mercredi 2 août 2006 Statut Membre Dernière intervention 29 mai 2007
5 mars 2007 à 01:34
Salut

merci pour tes 4 lignes du jfilechooser, tu m'a epargné un gro probleme.
je voudrais que le filechooser n'accepte que du txt; comment s'y prendre merci!
kiholo Messages postés 2 Date d'inscription mercredi 9 mars 2005 Statut Membre Dernière intervention 5 février 2007
5 févr. 2007 à 13:49
bonjour à tous,
j'ai fait un copier coller dans eclipse qui me sort certains problèmes
dans la class Ouvrir il demande
private static final long serialVersionUID = 1L;
import java.io.*; n'est pas utilisé
JButton et JTextField ne doivent ils pas être en private ?
j'ai aussi commenté chooser.showOpenDialog(null); //affiche la boite de dialogue
qui en effet affiche deux fois la boite de dialogue
sinon excellent et très didactique
merci
didoux95 Messages postés 845 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 1 août 2017 2
25 déc. 2006 à 22:19
Bonjour a tous,
Pour ceux que ca interresserait, pour ne pouvoir selectionner que des dossiers il suffit d'utiliser l'attribut ".setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);"

si non pour le code simple et claire (nikel).
Voila +
Mikonyx Messages postés 76 Date d'inscription jeudi 31 janvier 2002 Statut Membre Dernière intervention 1 septembre 2004
24 mai 2006 à 20:58
Pseudal > regardes dans les méthodes de l'API de la classe JFileChooser, c'est en effet possible :)
pseudal Messages postés 12 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 10 mars 2006
22 mai 2006 à 15:35
Un code clair et simple comme je les aime !!!!

Petite question est il possible de pouvoir sélectionner un dossier et non un fichier !!!
cs_laugui Messages postés 1 Date d'inscription jeudi 2 décembre 2004 Statut Membre Dernière intervention 6 mars 2006
6 mars 2006 à 17:59
Nikel, je cherchais pour la première fois a gérer se genre de choses(chargement fichier) et grâce à ce petit code source bien pratique j'ai vite appris.

Que demander de plus clair et efficace ?!

merci
MatFromPo Messages postés 1 Date d'inscription mardi 23 août 2005 Statut Membre Dernière intervention 23 août 2005
23 août 2005 à 20:58
Salut tout le monde.
Le code est clair et fonctionne. Seul petite rectif : la ligne 39 n'est pas nécessaire car l'affichage de la boite est fait a la ligne 40, l'action est donc faite 2 fois et cela oblige a sélectionner 2 fois le fichier.
cs_prey Messages postés 7 Date d'inscription lundi 12 mai 2003 Statut Membre Dernière intervention 21 mai 2003
30 mai 2003 à 09:40
Salut,
ton code fonctionne super bien, par contre, j'ai un soucis, l'interface de la boite de dialogue est en anglais chez moi, sauf les noms de boutons qui sont codés.
Saurais-tu d'ou ca peut venir ?
Merci de ton aide,
@+
Pervenche.
cs_polo12 Messages postés 15 Date d'inscription mardi 15 octobre 2002 Statut Membre Dernière intervention 29 octobre 2010
30 nov. 2002 à 22:12
c'est bien
Rejoignez-nous