JAVA | Tableau dynamique vers Tableau

Résolu/Fermé
Xineroks Messages postés 158 Date d'inscription lundi 9 janvier 2012 Statut Membre Dernière intervention 25 janvier 2014 - 3 mai 2012 à 17:14
Xineroks Messages postés 158 Date d'inscription lundi 9 janvier 2012 Statut Membre Dernière intervention 25 janvier 2014 - 4 mai 2012 à 12:26
Bonjour,

Je cherche à pouvoir créer un tableau et ajouter des éléments dans ce même tableau en fonction d'un autre, ce tableau avec les ajout serait un tableau de "transition" entre le premier et le dernier. Car j'utiliserais le tableau avec les Ajouts afin de pouvoir remplir l'autre tableau.

Particularité, c'est des Tableau de type File [], oui, je travaille sur des fichiers.

Un petit schéma s'impose :

File [] qui remplit le tableau tab[] selon des critères, et ce tab[] remplirait le nouveau tableau de FileModif [].

J'ai absolument besoin de garder ces File [] pour des raisons très importante sur le traitement de fichiers.

Je cherche donc le fameux tab[].

J'avais tout d'abord pensé à faire un ArrayList<File>, car je peux faire .add et ensuite faire un FileModif[] = ArrayList<File>, en gros. Mais c'est impossible.

C'est pourquoi je souhaiterais obtenir votre aide sur ce sujet.


Ci dessous le bout de code :

if (e.getSource() == open) {
    		
			JOptionPane.showMessageDialog(null, "Selectionnez une musique dans un repertoire pour selectionnez toutes les musiques de ce repertoire", "Information", JOptionPane.INFORMATION_MESSAGE);
			
			
    		fc = new JFileChooser();
    		fc.setAcceptAllFileFilterUsed(false);
    		fc.showOpenDialog(this);
    		if (fc.getDialogType() == JFileChooser.APPROVE_OPTION) {
    			dossier = fc.getCurrentDirectory();
    			if(dossier.isDirectory()){
    				fichiers = dossier.listFiles();
        			nombreFile = fichiers.length;
        			temp = nombreFile;
        			JOptionPane.showMessageDialog(null, "NB FIC : " + nombreFile, "Information", JOptionPane.INFORMATION_MESSAGE);

        			dlm.clear();
        			for(int i=0;i < temp;i++){
        					tempStr = fichiers[i].getName();
        					monExt = tempStr.split("[.]");
        					
        					try{
        						if(monExt[1].equals("mp3")||monExt[1].equals("wav")||monExt[1].equals("mp2")||monExt[1].equals("wma")){
        							dlm.addElement(monExt[0].toString()); 
        							fic.add(fichiers[i]);
        						}
        						else{        							
        							nombreFile--;
        						}
        					}
        					catch(Exception evt){
        						nombreFile--;
        					}
        				}
        			maPlayList = (File[]) fic.toArray();

    			}
       		}
    	}




Merci d'avance,

Cordialement,

Xineroks

2 réponses

KX Messages postés 16640 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 3 décembre 2022 2 983
3 mai 2012 à 17:45
"faire un FileModif[] = ArrayList<File>, en gros. Mais c'est impossible."
En quoi est-ce impossible ? Tu as les méthodes toArray pour passer d'une Collection à un tableau. Après il faudrait que File et FileModif soient compatibles, mais comme on ne sait pas d'où ça sort...
0
Xineroks Messages postés 158 Date d'inscription lundi 9 janvier 2012 Statut Membre Dernière intervention 25 janvier 2014 3
4 mai 2012 à 10:22
J'ai tenté un toArray, mais ça me met une erreur comme quoi je peux pas mettre mon Array<File> dans un File [].

Ca va sans doute faire un pavé mais voici le code entier, le code d'insertion est assez remarquable :

https://pastebin.com/pdr4MW4W

normalement ça devrait être compatible au vues du type ?
0
KX Messages postés 16640 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 3 décembre 2022 2 983
Modifié par KX le 4/05/2012 à 12:08
toArray() sans argument renvoie un Object[] et c'est la conversion avec un cast (File[]) qu'il n'aime pas.
Mais tu peux utiliser toArray avec en argument le File[] de retour et ça devrait mieux marcher :

maPlayList = fic.toArray(new File[fic.size()]);
0
Xineroks Messages postés 158 Date d'inscription lundi 9 janvier 2012 Statut Membre Dernière intervention 25 janvier 2014 3
4 mai 2012 à 12:26
Merci, comme d'hab ^^
0