Also ich hab da so ein Problem, ich will im JLabel den Namen des Liedes und der Band ausgeben, das funktioniert auch soweit, nur will ich jetzt das man mehrere Lieder auf einmal einlesen kann und sie alle sehen kann.
Also sogesehen wie ein Liste.
MultiSelection sollte eigentlich funktionieren aber ich komm irgentwie nicht drauf wie ich das im JLabel ausgebe... Kann mir jemand helfen?
Das der Quellcode dazu:
[highlight=Java]
import java.io.*;
import javax.swing.*;
import javax.swing.JFileChooser;
import javax.swing.event.*;
import java.awt.*;
import java.util.ArrayList;
import java.awt.event.*;
import javazoom.jl.player.*;
import javazoom.jl.player.advanced.*;
import javazoom.jl.decoder.*;
public class ProjektNeu extends JFrame{
JButton dir = new JButton("Durchsuchen");
JButton play = new JButton("Play");
JButton stop = new JButton("Stop");
JLabel statusbar = new JLabel("Auswahl anzeige");
String dateipfad;
startThread demoThread;
boolean running = true;
AdvancedPlayer p;
int i = 0;
ProjektNeu(){
super("Projekt");
setSize(350,200);
setDefaultCloseOperation(EXIT_ON_CLOSE);
Lauscher l = new Lauscher();
Container c = getContentPane();
c.setLayout(new FlowLayout());
dir.addActionListener(l);
play.addActionListener(l);
stop.addActionListener(l);
c.add(dir);
c.add(play);
c.add(stop);
c.add(statusbar);
}
class Lauscher implements ActionListener{
public void actionPerformed(ActionEvent ae){
String aktion = ae.getActionCommand();
if(aktion.equals("Durchsuchen")){
JFileChooser chooser = new JFileChooser();
chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
chooser.setMultiSelectionEnabled(true);
int option = chooser.showOpenDialog(ProjektNeu.this);
if(option == JFileChooser.APPROVE_OPTION){
statusbar.setText("Sie haben: "+chooser.getSelectedFile().getName() +" ausgewählt");
File[] pfad = chooser.getSelectedFiles();
if(pfad.isFile()){
try{
RandomAccessFile ranFile = new RandomAccessFile(pfad,"r");
byte[] bytearr = new byte[128];
ranFile.seek(ranFile.length()-128);
ranFile.read(bytearr,0,128);
String a = new String (bytearr,"US-ASCII");
if(!a.substring(0,3).equals("TAG")){
System.out.println("Keine Informationen vorhanden");
return;
}
String title,artist,album,year,comment;
System.out.println("TITEL: "+a.substring(3,33).trim());
System.out.println("ARTIST: "+a.substring(33,63).trim());
System.out.println("ALBUM: "+a.substring(63,93).trim());
System.out.println("YEAR: "+a.substring(93,97).trim());
System.out.println("COMMENT: "+a.substring(97,126).trim());
System.out.println("GENRE: "+bytearr[127]);
}
catch(IOException e){
System.out.println(e);
}
}
dateipfad = pfad.getAbsolutePath();
try{
p = new AdvancedPlayer(new FileInputStream(dateipfad));
}
catch(Exception e){
}
}
else{
statusbar.setText("Sie haben abgebrochen");
}
}
if(aktion.equals("Play")){
try{
p.close();
demoThread = new startThread();
running = true;
demoThread.start();
try{
p = new AdvancedPlayer(new FileInputStream(dateipfad));
}
catch(Exception e){
}
}
catch(Exception e){
}
}
if(aktion.equals("Stop")){
if(running){
demoThread = null;
}
running = false;
p.close();
try{
p = new AdvancedPlayer(new FileInputStream(dateipfad));
}
catch(Exception e){
}
}
}
}
class startThread extends Thread{
public void run(){
try{
p.play();
}
catch(Exception e){
}
}
}
public static void main(String[] args) throws FileNotFoundException, JavaLayerException{
ProjektNeu pn = new ProjektNeu();
pn.setVisible(true);
pn.setLocation(300,300);
}
}
[/highlight]
Also sogesehen wie ein Liste.
MultiSelection sollte eigentlich funktionieren aber ich komm irgentwie nicht drauf wie ich das im JLabel ausgebe... Kann mir jemand helfen?
Das der Quellcode dazu:
[highlight=Java]
import java.io.*;
import javax.swing.*;
import javax.swing.JFileChooser;
import javax.swing.event.*;
import java.awt.*;
import java.util.ArrayList;
import java.awt.event.*;
import javazoom.jl.player.*;
import javazoom.jl.player.advanced.*;
import javazoom.jl.decoder.*;
public class ProjektNeu extends JFrame{
JButton dir = new JButton("Durchsuchen");
JButton play = new JButton("Play");
JButton stop = new JButton("Stop");
JLabel statusbar = new JLabel("Auswahl anzeige");
String dateipfad;
startThread demoThread;
boolean running = true;
AdvancedPlayer p;
int i = 0;
ProjektNeu(){
super("Projekt");
setSize(350,200);
setDefaultCloseOperation(EXIT_ON_CLOSE);
Lauscher l = new Lauscher();
Container c = getContentPane();
c.setLayout(new FlowLayout());
dir.addActionListener(l);
play.addActionListener(l);
stop.addActionListener(l);
c.add(dir);
c.add(play);
c.add(stop);
c.add(statusbar);
}
class Lauscher implements ActionListener{
public void actionPerformed(ActionEvent ae){
String aktion = ae.getActionCommand();
if(aktion.equals("Durchsuchen")){
JFileChooser chooser = new JFileChooser();
chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
chooser.setMultiSelectionEnabled(true);
int option = chooser.showOpenDialog(ProjektNeu.this);
if(option == JFileChooser.APPROVE_OPTION){
statusbar.setText("Sie haben: "+chooser.getSelectedFile().getName() +" ausgewählt");
File[] pfad = chooser.getSelectedFiles();
if(pfad.isFile()){
try{
RandomAccessFile ranFile = new RandomAccessFile(pfad,"r");
byte[] bytearr = new byte[128];
ranFile.seek(ranFile.length()-128);
ranFile.read(bytearr,0,128);
String a = new String (bytearr,"US-ASCII");
if(!a.substring(0,3).equals("TAG")){
System.out.println("Keine Informationen vorhanden");
return;
}
String title,artist,album,year,comment;
System.out.println("TITEL: "+a.substring(3,33).trim());
System.out.println("ARTIST: "+a.substring(33,63).trim());
System.out.println("ALBUM: "+a.substring(63,93).trim());
System.out.println("YEAR: "+a.substring(93,97).trim());
System.out.println("COMMENT: "+a.substring(97,126).trim());
System.out.println("GENRE: "+bytearr[127]);
}
catch(IOException e){
System.out.println(e);
}
}
dateipfad = pfad.getAbsolutePath();
try{
p = new AdvancedPlayer(new FileInputStream(dateipfad));
}
catch(Exception e){
}
}
else{
statusbar.setText("Sie haben abgebrochen");
}
}
if(aktion.equals("Play")){
try{
p.close();
demoThread = new startThread();
running = true;
demoThread.start();
try{
p = new AdvancedPlayer(new FileInputStream(dateipfad));
}
catch(Exception e){
}
}
catch(Exception e){
}
}
if(aktion.equals("Stop")){
if(running){
demoThread = null;
}
running = false;
p.close();
try{
p = new AdvancedPlayer(new FileInputStream(dateipfad));
}
catch(Exception e){
}
}
}
}
class startThread extends Thread{
public void run(){
try{
p.play();
}
catch(Exception e){
}
}
}
public static void main(String[] args) throws FileNotFoundException, JavaLayerException{
ProjektNeu pn = new ProjektNeu();
pn.setVisible(true);
pn.setLocation(300,300);
}
}
[/highlight]
Zuletzt bearbeitet von einem Moderator: