JAVA | Tableau dynamique vers Tableau

[Résolu/Fermé]
Signaler
Messages postés
158
Date d'inscription
lundi 9 janvier 2012
Statut
Membre
Dernière intervention
25 janvier 2014
-
Messages postés
158
Date d'inscription
lundi 9 janvier 2012
Statut
Membre
Dernière intervention
25 janvier 2014
-
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

Messages postés
16410
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
24 octobre 2021
2 903
"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...
Messages postés
158
Date d'inscription
lundi 9 janvier 2012
Statut
Membre
Dernière intervention
25 janvier 2014
4
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 ?
Messages postés
16410
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
24 octobre 2021
2 903
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()]);
Messages postés
158
Date d'inscription
lundi 9 janvier 2012
Statut
Membre
Dernière intervention
25 janvier 2014
4
Merci, comme d'hab ^^