First, sorry for my bad English, I'm from Switzerland...
What I want: To play the selected song in the listview.
Problem: Can't start the program, because one line doesn't work (String ausgewaehltesLied = anzeige.getSelectionModel().getSelectedItem(); // <----- This is not working
), I don't know why.
Here's the code:
package mp3player;
import java.io.File;
import java.io.FilenameFilter;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.collections.*;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.ListView;
import javafx.scene.control.Slider;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
/**
*
* @author cuensal
*/
public class FXMLDocumentController implements Initializable {
@FXML
private Button start;
@FXML
private Slider lautstaerke;
@FXML
private Label songname;
@FXML
private Label artistname;
@FXML
private Label albumname;
@FXML
private Button back;
@FXML
private Button forward;
@FXML
private ListView<String> anzeige;
//zwischenspeicher für die liste, um mp3 dateien einzutragen
ObservableList<String> dieDaten;
//holt die dateien im angegebenen Ordner
File datei = new File("C:/Users/cuensal/Music/Beispiel/");
//speichert die dateien in diesem array / Filter, um nur mp3 dateien auszulesen
String[] dateienSammeln = datei.list(new FilenameFilter() {
public boolean accept(File file, String endung) {
return endung.endsWith(".mp3");
}
});
//Konventiert die Dateien (String[]) in eine observableArrayList
public FXMLDocumentController() {
this.dieDaten = FXCollections.observableArrayList(dateienSammeln);
}
@Override //TODO
public void initialize(URL url, ResourceBundle rb)
{
//holt die einträge von der observableArrayList
anzeige.setItems(dieDaten);
}
//Song zuweisen, indem der ausgewählte eintrag abgespielt wird
String ausgewaehltesLied = anzeige.getSelectionModel().getSelectedItem(); // <----- This is not working
//TESTSTRING (this works)
//String lied = "file:///C:/Users/cuensal/Music/Beispiel/Kalimba.mp3";
Media liedErstellen = new Media(ausgewaehltesLied);
MediaPlayer liedAbspielen = new MediaPlayer(liedErstellen);
@FXML
private void startButton(ActionEvent event)
{
if(start.getText().equals("Play"))
{
start.setText("Pause");
liedAbspielen.play();
}
else
{
start.setText("Play");
liedAbspielen.pause();
}
}
@FXML
private void backButton(ActionEvent event)
{
//....
}
@FXML
private void forwardButton(ActionEvent event)
{
//....
}
}
can anyone help me? thanks
The problem was, that the selected song was just the name of the song and not the full path. i add a string to it with the path and now it works