Filedialog

Status
Nicht offen für weitere Antworten.

aigi

Neues Mitglied
Hi leute haba mal ne Frage

Ich will eine Art Jukebox programmieren und will die Songs aus einem FileDialog auswählen aber das Problem dabei ist das ich bei jedem Öffnen nur einen Song auswählen kann. Ich will aber auf einmal mehrere auswählen durch Markierung oder durch irgendeine Tastenkombination z.B: STRG-A
Kann man das irgendwie realisieren?

Danke!
 

L-ectron-X

Gesperrter Benutzer
Ich glaube mit dem java.awt.FileDialog geht es nicht, mehrere Dateien auf einmal auszuwählen. Zumindest konnte ich jetzt in der API-Doc auch keine entspr. Methoden finden.
Du kannst aber alle ausgewählten Dateien (Referenzen auf File-Objekte) in einer Liste (Vector/ArrayList etc.) speichern und diese bei Verarbeitung durchlaufen.
im javax.swing.JFileChooser gibts eine Methode setMultiSelectionEnabled(boolean b), die eine Mehrfachauswahl zulässt. Aber bitte Swing und AWT nicht mischen, da gibts Probleme.
 

aigi

Neues Mitglied
Hab das mit dem Vektor ausprobiert das funktioniert aber nicht. Wenn ich eine Datei aus dem FileDialog auswähle und dann in den Vektor speichere dann wird die vorherige überschriben und es steht immer nur ein Element drinnen.

Und wie ruft man den JFileDialog auf?

Dake!
 

L-ectron-X

Gesperrter Benutzer
Der Vector darf natürlich nicht lokal angelegt werden, also keine lokale Variable sein, sonst schreibst du vermutlich deine daten immer in einen anderen (neuen Vector).
Lege den Vector als Instanzvariable an, instanziiere ihn einmal im Konstruktor deiner Klasse, dann kannst du beliebig (bis RAM voll) viele Bilder darin ablegen.
Ich würde es dir nicht vorschlagen, wenn es nicht funktionieren würde.

Wenn du einen JFileChooser nutzen möchtest, ist es aber besser, die gesamte Oberfläche auf Swing umzustellen, weil es bei gemischten AWT- und Swing-Komponenten zu Anzeigeproblemen kommen kann.
Um in einem javax.swing.JFileChooser eine Mehrfachauswahl zuzulassen, sieht der Code etwa so aus:
Code:
private JFileChooser chooser;
private File[] files;

public KonstruktorDeinerFensterKlasse([...]) {
   chooser = new JFileChooser();
   chooser.setMultiSelectionEnabled(true); //Mehrfachauswahl unterstützen

   [...]
}


   [...]
   private void openJFileChooser() {
      int result = chooser.showDialog(this, "Bilder auswählen");
      switch(result) {
         case JFileChooser.APPROVE_OPTION:
            files = chooser.getSelectedFiles();
            if(files == null) {
              return;
            }

         //Bilder sind jetzt eingelesen und können verarbeitet werden.
      }
   }

Einen fertigen einfachen Bildbetrachter in Swing findest du hier:
http://www.java-forum.org/de/viewtopic.php?p=139877#139877
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben