JAVA FX problem

josfe1234

josfe1234

Mitglied
Error: Could not find or load main class studiplayer.ui.Player


Caused by: java.lang.ClassNotFoundException: studiplayer.ui.Player
player:
package studiplayer.ui;

//Imports -> Jede Menge wegen JavaFX
import java.net.URL;
import java.util.List;
import javafx.application.Application;
import javafx.application.Platform;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.ContentDisplay;
import javafx.scene.control.Label;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;
import studiplayer.audio.AudioFile;
import studiplayer.audio.NotPlayableException;
import studiplayer.audio.PlayList;

public class Player extends Application{

    private volatile boolean editorVisible;
    private Button prevButton;
    private Button playButton;
    private Button pauseButton;
    private Button stopButton;
    private Button nextButton;
    private Button editorButton;
    private PlayList playList;
    public static final String DEFAULT_PLAYLIST = "playlists/DefaultPlayList.m3u";
    private String playListPathname;
    private final String initialPosition = "00:00";
    private final String currentSongString = "Current song: ";
    private final String noCurrentSong = "no current song";
    private boolean stopped;
    private Label songDescription;
    private Label playTime;
    private Stage primaryStage;
    private PlayListEditor playListEditor;
    
    public Player() {
    }
    
    @Override
    public void start(Stage primaryStage) throws Exception {
        this.primaryStage = primaryStage;
        BorderPane mainPane = new BorderPane();
        
        //Aus den Parametern den Pfad der Playlist heraussuchen (get) und Playlist laden
        List<String> parameters = getParameters().getRaw();
        playList = new PlayList();
        if(!parameters.isEmpty()) playListPathname = parameters.get(0);
        else playListPathname = DEFAULT_PLAYLIST;
        playList.loadFromM3U(playListPathname);
        
        //PlayListEditor erstellen und Visible = true
        playListEditor = new PlayListEditor(this, this.playList);
        editorVisible = false;
        
        songDescription = new Label();
        songDescription.setPadding(new Insets(5,10,5,6));
        
        //Das Label für die Abspielanzeige erstellen und mit Insets "positionieren"
        playTime = new Label("--:--");
        playTime.setPadding(new Insets(18,10,10,10));
        
        //Buttons erstellen und den Event-Handler zuordnen
        //Funktionierender prev-Button (bei APA auskommentiert weiß nicht ob er ihn haben will oder nicht)
        prevButton = createButton("previous.png");
        prevButton.setOnAction (e -> {
            prevSong();
        });
        
        playButton = createButton("play.png");
        playButton.setOnAction(e -> {
            playCurrentSong();
        });
        
        pauseButton = createButton("pause.png");
        pauseButton.setOnAction(e-> {
            pauseCurrentSong();
        });
        
        stopButton = createButton("stop.png");
        stopButton.setOnAction(e-> {
            stopCurrentSong();
        });
        
        nextButton = createButton("next.png");
        nextButton.setOnAction(e-> {
            nextSong();
        });
        
        editorButton = createButton("pl_editor.png");
        editorButton.setOnAction(e -> {
            if(editorVisible)
            {
                editorVisible = false;
                playListEditor.hide();
            }
            else
            {
                editorVisible = true;
                playListEditor.show();
            }
        });

        
        //Die Buttons der HBox zuordnen
        HBox center = new HBox();
        center.getChildren().add(playTime);
        center.getChildren().add(prevButton);
        center.getChildren().add(playButton);
        center.getChildren().add(pauseButton);
        center.getChildren().add(stopButton);
        center.getChildren().add(nextButton);
        center.getChildren().add(editorButton);
        
        //Die aktuellen Song-Infos ausgeben, egal ob in der Playlist ein Lied ist oder nicht
        if (playList != null && playList.size() > 0) {
            updateSongInfo(playList.getCurrentAudioFile());
        } else {
            updateSongInfo(null);
        }
        
        //Erstmal keinen Song abspielen, deshalb stopped=true!
        stopped = true;
        //ButtonStates setzen am Anfang gleich
        setButtonStates(false, true, false, true, false, false);
        
        mainPane.setTop(songDescription);
        mainPane.setCenter(center);
        Scene scene = new Scene(mainPane, 700, 90); //Scene erstellen
        primaryStage.setOnCloseRequest(e -> {
            if (!stopped) stopCurrentSong();
        });

        primaryStage.setScene(scene);;                //Stage zuordnen
        primaryStage.show();                        //Stage anzeigen
        
    }
    
    private Button createButton(String iconfile) {
        Button button = null;
        try {
            URL url = getClass().getResource("/icons/" + iconfile);
            Image icon = new Image(url.toString());
            ImageView imageview = new ImageView(icon);
            imageview.setFitHeight(48);
            imageview.setFitWidth(48);
            button = new Button("", imageview);
            button.setContentDisplay(ContentDisplay.GRAPHIC_ONLY);
        } catch (Exception e){
            System.out.println("Image " + "icons/" + iconfile + " not found!");
            System.exit(-1);
        }
        return button;
    }
    
    public void setEditorVisible(boolean pEditorVisible) {
        editorVisible = pEditorVisible;
    }
    
    //Setter und Getter für die playList:
    public String getPlayListPathname() {
        return playList.getCurrentAudioFile().getFilename();
    }
    public void setPlayList(String playListPath) {
        if (playListPath != null) {
            playListPathname = playListPath;
            playList.loadFromM3U(playListPath);
            Platform.runLater(() -> updateSongInfo(playList.getCurrentAudioFile()));
        } else {
            playList.clear();
            playList.loadFromM3U(DEFAULT_PLAYLIST);
            playList.clear();
        }
    }
    
    //Die Methoden für die Event-Handler der Buttons:
    public void playCurrentSong() { //Für den Start/Play Knopf im EventHandling
        // Holt Song aus der PlayList raus und spielt ihn ab
        // stoppen, falls grad ein Lied läuft
        if(!stopped) stopCurrentSong();
        //Dann wird was abgespielt
        stopped = false;
        //System.out.println("Playing " + playlist.getCurrentAudioFile().toString());
        if(playList!= null && playList.size()>0) {
            updateSongInfo(playList.getCurrentAudioFile());
            setButtonStates(true, false, false, false, false, false);
        }
        else {
            updateSongInfo(null); //GUI updaten
            setButtonStates(true, true, true, true, false, true);
        }
        //Timer-Thread und Player-Thread starten mit der start()-Methode
        if(!playList.isEmpty()) {
            (new TimerThread()).start();
            (new PlayerThread()).start();
        }
    }
    
    public void pauseCurrentSong() { // Für Pause Knopf im EventHandler
        //Wenn man pausiert... Lied anhalten -> togglePause aufrufen
        if(!playList.isEmpty() && playList.getCurrentAudioFile()!=null) {
            playList.getCurrentAudioFile().togglePause();
        }
        //System.out.println("Pause + playlist.getCurrentAudioFile().toString()");
        setButtonStates(true, false, false, false, false, false);
    }
    
    public void stopCurrentSong() {
        stopped = true;
        //System.out.println("Stop + playlist.getCurrentAudioFile().toString()");
        if(playList != null && playList.size()>0) {
            playList.getCurrentAudioFile().stop();
            updateSongInfo(playList.getCurrentAudioFile()); //GUI updaten
            setButtonStates(false, true, false, true, false, false);
        }
        else {
            updateSongInfo(null);
            setButtonStates(true, true, true, true, false, true);
        }
    }
    
    public void nextSong() { //Vielleicht auch oben reinkopieren in EventHandler...
        
        if (playList != null && !playList.isEmpty()) {
            stopCurrentSong();
            playList.changeCurrent();
            playCurrentSong();
        }
    }
    
    //Needed fuer prevButton:
    public void prevSong() {
        if(playList != null && !playList.isEmpty()) {
            stopCurrentSong();
            int aktIndex = playList.getCurrent();
            if(aktIndex!=0) aktIndex--;
            else aktIndex = playList.size()-1;
            playList.setCurrent(aktIndex);
            playCurrentSong();
        }
    }
    
    //GUI-updaten-Methoden:
    private void updateSongInfo(AudioFile af) { //für Kopfzeile
        if(af == null) {
            songDescription.setText(noCurrentSong);
            primaryStage.setTitle(noCurrentSong);
            playTime.setText("--:--");
        }
        else {
            songDescription.setText(af.toString());
            primaryStage.setTitle(currentSongString + af.toString());
            playTime.setText(af.getFormattedPosition());
        }
    }
    
    public void refreshUI() {
        Platform.runLater(() -> {
            if (playList != null && playList.size() > 0) {
                updateSongInfo(playList.getCurrentAudioFile());
            } else {
                updateSongInfo(null);
                setButtonStates(true, true, true, true, false, true);
            }
        });
    }
    
    private void setButtonStates(boolean playButtonState, boolean stopButtonState,
            boolean nextButtonState, boolean pauseButtonState, boolean editorButtonState ,
            boolean prevButtonState)  {
        
        playButton.setDisable(playButtonState);
        stopButton.setDisable(stopButtonState);
        nextButton.setDisable(nextButtonState);
        pauseButton.setDisable(pauseButtonState);
        editorButton.setDisable(editorButtonState);
        prevButton.setDisable(prevButtonState);
    }
    
    //inner classes:
    private class TimerThread extends Thread  { //Ändern der Sekunden im Label
        public void run() {
            //Alle 100ms ändern
            while(!stopped && !playList.isEmpty()) {
                Platform.runLater(() ->
                    playTime.setText(playList.getCurrentAudioFile().getFormattedPosition())
                    ); //Label
                try {
                    sleep(100);
                } catch (InterruptedException e) { }
            }
            
            Platform.runLater(()-> playTime.setText(initialPosition));
        }
    }
    private class PlayerThread extends Thread {
        public void run() {
            while(!playList.isEmpty() && !stopped) {
                try {
                    playList.getCurrentAudioFile().play();
                } catch (NotPlayableException e) {
                    e.printStackTrace();
                }
            }
            
            //Weiterhin !stopped:
            if(!stopped) {
                playList.changeCurrent();
                updateSongInfo(playList.getCurrentAudioFile());
            }
        }
    }
    
    //Main
    public static void main(String[] args) {
        launch(args);
    }

}


einer vielleicht eine Idee, was der Fehler sein könnte?
 
josfe1234

josfe1234

Mitglied
ja, ich denke irgendwas mit javafix funktioniert aber nicht.

also die jfxrt.jar Datei muss im path hinzugefügt werde. nur leider hab ich die nirgendwo.
 
mrBrown

mrBrown

Super-Moderator
Mitarbeiter
Das hat vermutlich eher nichts mit JavaFX zu tun, zeig mal den ganzen Stacktrace, dann wäre das ersichtlich.

Wahrscheinlicher ist, dass du beim Starten im falschen Verzeichnis bist bzw. die Klasse nicht am passenden Ort liegt.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J JAVA-Problem blockiert MEDIATHEKVIEW Java Basics - Anfänger-Themen 13
S Java Array Problem... Java Basics - Anfänger-Themen 2
S Compiler-Fehler Exception in thread "main" java.lang.Error: Unresolved compilation problem: Java Basics - Anfänger-Themen 6
C Java Methoden "Parameter" Problem Java Basics - Anfänger-Themen 16
K Java Problem mit Übergabe von argumenten Java Basics - Anfänger-Themen 3
J "travelling salesman problem" mit Java Editor Java Basics - Anfänger-Themen 17
C Two-Center Problem in Java Java Basics - Anfänger-Themen 0
P Problem bei Java-Aufgabe Java Basics - Anfänger-Themen 12
L Java reset button Problem Java Basics - Anfänger-Themen 3
L Java reset button Problem Java Basics - Anfänger-Themen 9
L Problem bei Java-ActionListener Java Basics - Anfänger-Themen 4
Amelie Java Problem Java Basics - Anfänger-Themen 2
T eclipse mit java 9 Problem? Java Basics - Anfänger-Themen 5
B problem mit java Java Basics - Anfänger-Themen 15
Z Problem mit "Random" in Java Java Basics - Anfänger-Themen 12
J Verständnis Problem Java-Listener. Java Basics - Anfänger-Themen 59
A Problem eines Anfängers bei Java Java Basics - Anfänger-Themen 6
O Compiler-Fehler Ein weiteres Java Problem Java Basics - Anfänger-Themen 3
L Compiler-Fehler Problem beim Programmieren eines Kalenders (java.lang.ArrayIndexOutOfBoundsException) Java Basics - Anfänger-Themen 2
H Interface Problem mit Java Editor Java Basics - Anfänger-Themen 15
J Problem mit java Dos-Applikation Java Basics - Anfänger-Themen 3
M Problem/Unsicherheit bei Java-Aufgaben Java Basics - Anfänger-Themen 11
G Problem: Java Projekt als ausführbare Jar Exportieren (Eclipse) Java Basics - Anfänger-Themen 10
K Java Projekt als ausführbare Jar Exportieren (Eclipse) Problem Java Basics - Anfänger-Themen 24
D Erste Schritte Problem mit dem Java-Editor Eclipse [Frage] Java Basics - Anfänger-Themen 13
P Tag der Zeitumstellung Sommer->Winterzeit (Java Calendar) Problem Java Basics - Anfänger-Themen 5
T Problem mit Eclipse? Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 4
J Java Daten von Konsole einlesen (Spezielles Problem) Java Basics - Anfänger-Themen 6
R Problem mit Java-Chat Java Basics - Anfänger-Themen 2
KranzKrone Erste Schritte Java MVC Problem Java Basics - Anfänger-Themen 3
T Problem mit java-editor + Scanner Java Basics - Anfänger-Themen 9
C JDK installieren Habe ein Problem bei Java install Java Basics - Anfänger-Themen 4
B JAVA Package Problem Java Basics - Anfänger-Themen 8
D Java Date/Calendar Problem Java Basics - Anfänger-Themen 4
V Java Chat Programm Problem mit IP Addresse Java Basics - Anfänger-Themen 7
J Habe problem mit Java Java Basics - Anfänger-Themen 2
B Problem mit Dr. Java Java Basics - Anfänger-Themen 15
T Problem bei BeatBox aus Java-Von Kopf bis Fuß Java Basics - Anfänger-Themen 3
P Problem- Java Applet wird nicht ausgeführt Java Basics - Anfänger-Themen 9
H JDK installieren Mac Problem mit Java SE 1.7 Java Basics - Anfänger-Themen 5
I Java von Kopf bis Fuß: Ratespiel-Problem Java Basics - Anfänger-Themen 20
P Problem :Java-Dateien in einem Ordner ablegen Java Basics - Anfänger-Themen 10
M Java String " einfügen Problem Java Basics - Anfänger-Themen 2
G Java Dezimal Zahlen Internazialisation Problem Java Basics - Anfänger-Themen 7
I Problem mit Java Text Area Java Basics - Anfänger-Themen 14
S Problem mit java.awt Java Basics - Anfänger-Themen 3
S java versionen problem Java Basics - Anfänger-Themen 20
Z Problem mit Tutorial - Finde Kon.java nicht Java Basics - Anfänger-Themen 11
B Problem mit Java XML Java Basics - Anfänger-Themen 6
B Problem mit XML und Java Java Basics - Anfänger-Themen 2
F Methoden Java Freihand Problem Java Basics - Anfänger-Themen 4
turmaline Java Virtual Machine Launcher Problem Java Basics - Anfänger-Themen 1
J Java Installations/Deinstallations Problem. Java Basics - Anfänger-Themen 5
D Problem mit java.io.* Java Basics - Anfänger-Themen 6
M Problem bei einer Java-Aufgabe (Fakultäten) Java Basics - Anfänger-Themen 5
H Problem beim Anfang von Java (Java Editor) Java Basics - Anfänger-Themen 2
D Problem mit Java für dummies Java Basics - Anfänger-Themen 2
K Java Array Problem Java Basics - Anfänger-Themen 3
M java.lang.NumberFormatException-Problem Java Basics - Anfänger-Themen 6
S Java problem, bitte um hilfe! Java Basics - Anfänger-Themen 9
J Problem mit Ausführen von Java-Dateien Java Basics - Anfänger-Themen 5
A Problem bei der Division mit Java Java Basics - Anfänger-Themen 4
E Datentypen ein java problem rekursiv loesen Java Basics - Anfänger-Themen 2
S Java Verständnis Problem Methoden etc. Java Basics - Anfänger-Themen 22
E Java hashCode equals Problem Java Basics - Anfänger-Themen 2
D Problem bei Java - Aufgabe Java Basics - Anfänger-Themen 7
B in & out class problem (java anfängeR) Java Basics - Anfänger-Themen 5
F Java Variablen Problem Java Basics - Anfänger-Themen 8
R Problem beim Ausführen von Java-PGM aus der shel Java Basics - Anfänger-Themen 3
D Java Problem bitte um hilfe Java Basics - Anfänger-Themen 4
L Java [Beginner] Problem Java Basics - Anfänger-Themen 8
K java.util.ConcurrentModificationException problem in der Logik? Quaxli-Tutorial Java Basics - Anfänger-Themen 9
D Java per Konsole oder Batch öffnen - Problem Java Basics - Anfänger-Themen 4
S setVisible Problem bei java.awt Java Basics - Anfänger-Themen 9
J Anfänger-Problem: Rechnen mit Java Java Basics - Anfänger-Themen 3
T Java Bilderverwaltung - Image Fetcher Problem Java Basics - Anfänger-Themen 4
V Problem bei java Application Java Basics - Anfänger-Themen 3
B Java Desktop Wecker problem Java Basics - Anfänger-Themen 3
? Konsolenprogramm hat Problem mit java.awt oder javax.swing Java Basics - Anfänger-Themen 7
M Problem mit dem Klassen aus dem java.io Paket Java Basics - Anfänger-Themen 9
E java.util.ConcurrentModificationException Problem Java Basics - Anfänger-Themen 5
G java.io.File problem Java Basics - Anfänger-Themen 5
R Java Problem (mit NetBeans) - html gibt nur java logo aus Java Basics - Anfänger-Themen 7
M Problem mit Java unter Vista 64 Java Basics - Anfänger-Themen 4
S Seltsames Java Problem Java Basics - Anfänger-Themen 3
A Matisse oder Java Problem: JPanels werden riesig ? Java Basics - Anfänger-Themen 3
S Ausgabe auf der Java-Console (Java Problem) Java Basics - Anfänger-Themen 13
A Do/While Problem (Exception in thread "main" java. Java Basics - Anfänger-Themen 4
Nexu [JAVA] Problem mit den Fenstern Java Basics - Anfänger-Themen 2
D Problem bei einer Formel (Bin Java Neuling) Java Basics - Anfänger-Themen 3
D Java Rechner und Einlesen Problem (mit hasNext) Java Basics - Anfänger-Themen 2
G JAVA KARA PROBLEM Java Basics - Anfänger-Themen 4
F Problem mit auführen einer .bat Datei aus Java heraus Java Basics - Anfänger-Themen 24
I Problem mit import java.awt.*; Java Basics - Anfänger-Themen 5
J Java GUI Problem (throws.) Java Basics - Anfänger-Themen 3
S Problem beim kompilieren mit Java 1.4 Java Basics - Anfänger-Themen 4
A problem mit java.awt Java Basics - Anfänger-Themen 17
K Problem mit javax/servlet/http/HttpServletRequest.java Java Basics - Anfänger-Themen 2
N Problem mit MySql und Java Java Basics - Anfänger-Themen 12
J Problem mit Java Zahlen Spiel Java Basics - Anfänger-Themen 3

Ähnliche Java Themen


Oben