Möglichkeit Ordnerinhalte aufzulisten

Status
Nicht offen für weitere Antworten.

Rave

Bekanntes Mitglied
Hey,
Ich suche eine Möglichkeit wie ich die .mp3 Datein aus einem Ordner in meinem Frame auflisten lassen kann:

Ich habe was von file.listFiles(); gelesen!? Aber ich weiss nich genau wie ich dieses anwende.
Und eine weitere Frage die ich mir dabei stelle: Wie kriege ich es hin das mein AudioPlayer, den ich schon programmiert habe, wenn man auf einen der Angezeigten mp3 Datein anklicke diese "bekommt" um sie abzuspielen.
Bin grade dabei inner Insel nachzulesen aber komm noch nich sooo gut vorran !!! :rtfm:
 
File[] files = file.listFiles();

gibt dir n array aus fileobjekten zurück, über die du dann iterieren kannst.

wenn du diese "anklickst", musst du das entsprechende file laden
 
Java:
package test;

import java.awt.BorderLayout;
import java.io.File;
import java.io.FileFilter;

import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

public class MP3Player extends JFrame implements ListSelectionListener {

	private File[] mp3Files;

	private File directory;
	
	private JList mp3List;
	
	public MP3Player() {

		this.directory = new File("D:/Meine Musik/");
		if (!directory.isDirectory()) {
			System.err.println("Dies ist kein Verzeichnis: " + directory);
		}

		this.setTitle("MP3 Player");
		this.setDefaultCloseOperation(EXIT_ON_CLOSE);
		this.setLocationRelativeTo(null);
		this.setSize(200, 200);
		this.setLayout(new BorderLayout());

		mp3Files = readDirectory();

		mp3List = new JList(mp3Files);
		mp3List.setSelectedIndex(0);
		mp3List.addListSelectionListener(this);

		JScrollPane scroll = new JScrollPane(mp3List);
		this.add(scroll, BorderLayout.CENTER);

		this.validate();
		this.setVisible(true);
	}

	private File[] readDirectory() {
		File[] files = directory.listFiles(new FileFilter() {
			@Override
			public boolean accept(File currentFile) {
				return currentFile.getName().toLowerCase().endsWith(".mp3");
			}
		});
		return files;
	}

	public static void main(String[] args) {
		new MP3Player();
	}

	@Override
	public void valueChanged(ListSelectionEvent e) {
		File mp3ToPlay = new File(mp3List.getSelectedValue().toString());
		this.play(mp3ToPlay);
	}

	private void play(File mp3) {
		System.out.println(mp3.getName());
	}
}
 
File[] files = file.listFiles();

gibt dir n array aus fileobjekten zurück, über die du dann iterieren kannst.

wenn du diese "anklickst", musst du das entsprechende file laden

Das klingt schon mal nach was 🙂 und genau das hatte ich mir shconmal angeschaut 🙂
Ich hab ja in meiner Klasse soundLib eine Methode loadMp3 kann ich dieser das irgenwie direkt übergeben oder Muss ich das mit ner Maus Abfrage machen ???
 
Also ich hab mal das gepostete Beispiel benutzt !!!!

Und ich habe wegen:
package test;

Einen NullPointer was muss ich dort denn hinschreiben ???? Oder was muss ich ändern ?? ???:L

java.lang.NoClassDefFoundError: test/MP3Player
Caused by: java.lang.ClassNotFoundException: test.MP3Player
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
Could not find the main class: test.MP3Player. Program will exit.
Exception in thread "main"
 
Das Package ist einfach der Ordner, in dem Deine Klassen liegen, z.B. src/test/MP3Player.java. Kannst die Zeile löschen, dann müsste es gehen.

Gruß Stefan
 
Dann wurden deine Dateien nicht gefunden... ist eben Quick & Dirty 🙂. Poste mal deinen Pfad.

Pfad klappt jetzt ;-) ehm...wie schreib ich ne Methode das der die Mp3 Datein dann auch abspielt ?? Muss ich das über meine eigene soundLib machen ??? Die kann Mp3's abspielen oder muss ich das in der Klasse selbst noch irgendwie hinzufügen !!!

Kenn mich mit Listeners und JComponenten leider noch nicht so aus ;( bin aber dabei ^^ :rtfm:
 
How to Play an MP3 File in Java

Lad Dir da die jl1.0.jar herunter, leg sie in den Klassenpfad und ergänz deine play()-Methode. Im Anhang eine funktionierende Version, allerdings immer nur eine abspielen, sonst gibts nen krassen Remix 😀

Gruß Stefan

Ach en krasser Remix hat was hab ich mit meiner eigenen Klasse auch schon :-D nur das die nich mehr für das reicht was ich vorhabe :-D xD

Ich Probiers mal ;-) meld mich dann noch mal
 
Kann ich diese JList eingrenzen ?? Also so ne Art Rahmen rum ziehen ?? Denn ich würde gerne noch ein paar Dinge in diesem Frame einfügen, also Zeichnen und Jpegs Anzeigen damit das nach was aussieht ???
Oder dann zu Hilfe für mich noch en Tutorial ??? Google spuckt heute bei mir nur Mist aus :lol:


EDIT:
Ne andere möglichkeit wäre das ich das in meinen Eigenen Frame mit integriere ??? Wär das komplizierter ???? Und was brauche ich dann davon ??
 
Zuletzt bearbeitet:
Rahmen gibts mit list.setBorder(...), Border gibts in der BorderFactory.create...(). Bilder kannst Du anzeigen, indem Du in der relevanten Componente die paint()-Methode überschreibst.

Gruß Stefan
 
Rahmen gibts mit list.setBorder(...), Border gibts in der BorderFactory.create...(). Bilder kannst Du anzeigen, indem Du in der relevanten Componente die paint()-Methode überschreibst.

Gruß Stefan

So den Rahmen hab ich ;-) kann ich den begrenzen ??? Also so das auch die JList davon richtig begrezt wird ?? Weil wenn ich das Fenster maximiere dann wird der Rahmen daran angepasst!!!! Kann ich das verhindern ???
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben