Eine ImageView Deaktivieren

Guten Tag liebe Java-Gemeinde,

aktuell arbeite ich an einem Musikplayer.
Dieser wurde mir als letzte Aufgabe aufgetragen.
Aktuell hakt es bei mir, beim Deaktivieren der Knöpfe Play/Stop/Mute, solange noch keine Datei abgespielt wurde.

hier ein mal der Quellcode vom FXMLController indem der ganze Logikspaß realisiert werden soll.
Vielleicht hat einer von euch eine dufte Idee :)

Java:
package de.fernschulen.mediaplayer;

import java.io.File;

import javafx.application.Platform;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.fxml.FXML;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.control.ListView;
import javafx.stage.FileChooser;
import javafx.stage.FileChooser.ExtensionFilter;
import javafx.stage.Stage;

import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.media.MediaView;
import javafx.scene.image.ImageView;
import javafx.scene.input.MouseEvent;
import javafx.scene.image.Image;

public class FXMLController {
    //für die Bühne
    private Stage meineStage;
    //für den Player
    private MediaPlayer mediaplayer;

    //für die MediaView
    @FXML private MediaView mediaview;
    //für die ImageView mit dem Symbol
    @FXML private ImageView symbol;
    //****************************************Aufgabe 2****************************************
    //für die ImageView mit den Symbolen start.
    @FXML private ImageView symbolStart;
    //für die ImageView mit den Symbolen pause.
    @FXML private ImageView symbolPause;
    //****************************************Aufgabe 2****************************************
    //für das Listenfeld
    @FXML private ListView<String> liste;

    //die Methode setzt die Bühne auf den übergebenen Wert
    public void setMeineStage(Stage meineStage) {
        this.meineStage = meineStage;
    }

    //die Methode zum Laden
    @FXML protected void ladenKlick(ActionEvent event) {
        //eine neue Instanz der Klasse FileChooser erzeugen
        FileChooser oeffnenDialog = new FileChooser();
        //den Titel für den Dialog setzen
        oeffnenDialog.setTitle("Datei öffnen");
        //die Filter setzen
        oeffnenDialog.getExtensionFilters().add(new ExtensionFilter("Audiodateien", "*.mp3"));
        oeffnenDialog.getExtensionFilters().add(new ExtensionFilter("Videodateien", "*.mp4"));
        //den Startordner auf den Benutzerordner setzen
        oeffnenDialog.setInitialDirectory(new File(System.getProperty("user.home")));

        //den Öffnendialog anzeigen und das Ergebnis beschaffen
        File datei = oeffnenDialog.showOpenDialog(meineStage);
        //wurde eine Datei ausgewählt
        if (datei != null)
            //dann über eine eigene Methode laden
            dateiLaden(datei);
    }

    //die Methode zum Stoppen
    @FXML protected void stoppKlick(ActionEvent event) {
        //gibt es überhaupt einen Mediaplayer?
        if (mediaplayer != null)
            //dann anhalten
            mediaplayer.stop();
        //****************************************Aufgabe 2****************************************   
        //das Bild für die Wiedergabe erzeugen und anzeigen
        File bilddatei = new File("icons/play.gif");
        Image bild = new Image(bilddatei.toURI().toString());
        symbolStart.setImage(bild);
        //****************************************Aufgabe 2****************************************
    }

    //die Methode für die Pause
    @FXML protected void pauseKlick(ActionEvent event) {
        //gibt es überhaupt einen Mediaplayer?
        if (mediaplayer != null)
            //dann unterbrechen
            mediaplayer.pause();
    }

    //die Methode für die Wiedergabe & Pause
    @FXML protected void playKlick(ActionEvent event) {
        //****************************************Aufgabe 2****************************************
        //gibt es überhaupt einen Mediaplayer?
        if (mediaplayer != null) {
            //wenn der Mediaplayer pausiert oder gestoppt wurde,
            //wird der Mediaplayer auf Wiedergabe gestellt und
            //das Bild des Buttons "play" angezeigt.
            if (mediaplayer.getStatus() == MediaPlayer.Status.PAUSED ||
                mediaplayer.getStatus() == MediaPlayer.Status.STOPPED) {
                //dann Datei abspielen
                mediaplayer.play();
                //das Bild für die Pause erzeugen und anzeigen
                File bilddatei = new File("icons/pause.gif");
                Image bild = new Image(bilddatei.toURI().toString());
                symbolStart.setImage(bild);
            }
            else
                //wenn der Mediaplayer gestartet wurde,
                //wird der Mediaplayer auf pausiert und
                //das Bild des Buttons "pause" angezeigt.
                if (mediaplayer.getStatus() == MediaPlayer.Status.PLAYING) {
                    //wenn nicht, dann die Datei pausieren
                    mediaplayer.pause();
                    //das Bild für die Wiedergabe erzeugen und anzeigen
                    File bilddatei = new File("icons/play.gif");
                    Image bild = new Image(bilddatei.toURI().toString());
                    symbolStart.setImage(bild);
                }
        }
        //****************************************Aufgabe 2****************************************
    }

    //die Methode für das Ein- und Ausschalten der Lautstärke
    @FXML protected void lautsprecherKlick(ActionEvent event) {
        String dateiname;
        //gibt es überhaupt einen Mediaplayer?
        if (mediaplayer != null) {
            //ist die Lautstärke 0?
            if (mediaplayer.getVolume() == 0) {
                //dann auf 100 setzen
                mediaplayer.setVolume(100);
                //und das "normale" Symbol setzen
                dateiname = "icons/mute.gif";
            }
            else {
                //sonst auf 0 setzen
                mediaplayer.setVolume(0);
                //und das durchgestrichene Symbol setzen
                dateiname = "icons/mute_off.gif";
            }
            //das Bild erzeugen und anzeigen
            File bilddatei = new File(dateiname);
            Image bild = new Image(bilddatei.toURI().toString());
            symbol.setImage(bild);   
        }
    }

    //die Methode zum Beenden
    @FXML protected void beendenKlick(ActionEvent event) {
        Platform.exit();
    }

    //****************************************Aufgabe 1****************************************
    //die Methode lädt eine Datei erneut,
    //wenn sie aus der Medialiste ausgewählt wird.
    @FXML protected void listeKlick(MouseEvent event) {
        //der Eventhandler für die Maus
        //eine Maustaste wurde gedrückt
        liste.setOnMousePressed(new EventHandler<MouseEvent>() {
            @Override
            public void handle(MouseEvent e) {
                //eine Instanz für eine Datei erzeugen
                //und den Namen der Datei als Argument übergeben,
                //die in der Liste angeklickt wurde.
                File angeklickteDatei = new File(liste.getSelectionModel().getSelectedItem());
                //wurde eine Datei ausgewählt?
                if (angeklickteDatei != null)
                    dateiLaden(angeklickteDatei);
            }
        });
    }
    //****************************************Aufgabe 1****************************************   

    //die Methode lädt eine Datei
    public void dateiLaden(File datei) {
        //läuft schon eine Wiedergabe?
        if (mediaplayer != null && mediaplayer.getStatus() == MediaPlayer.Status.PLAYING) {
            //dann anhalten
            mediaplayer.stop();
        }
        //das Medium, den Mediaplayer und die MediaView erzeugen
        try {       
            Media medium = new Media(datei.toURI().toString());
            mediaplayer = new MediaPlayer(medium);
            mediaview.setMediaPlayer(mediaplayer);
            //die Wiedergabe starten
            mediaplayer.play();

            //****************************************Aufgabe 1****************************************
            //ist die Datei bereits vorhanden?
            if (liste.getItems().contains(datei.toString()) == false)
                //wenn ja, dann den Pfad in das Listenfeld eintragen.
                liste.getItems().add(datei.toString());
            //****************************************Aufgabe 1****************************************

            //und die Titelleiste anpassen
            meineStage.setTitle("JavaFX Multimedia-Player " + datei.toString());
        }
        catch(Exception ex) {
            //den Dialog erzeugen und anzeigen
            Alert meinDialog = new Alert(AlertType.INFORMATION, "Beim Laden hat es ein Problem gegeben.\n" + ex.getMessage());
            //den Text setzen
            meinDialog.setHeaderText("Bitte beachten");
            meinDialog.initOwner(meineStage);
            //den Dialog anzeigen
            meinDialog.showAndWait();
        }
    }
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A 2 Verschachtelte Schleifen sollen eine Auswirkung von -7 pro Durchgang haben AWT, Swing, JavaFX & SWT 6
jojoge wie kann ich in eine Benennung eines JButtons eine Variable einbauen? AWT, Swing, JavaFX & SWT 6
MartinNeuerlich Kann mir jemand, der einen Mac mit einem m1 oder m2-Chip hat, eine POM geben mit der Javafx-Fullscreen beim Mac mit m-Chip funktioniert? AWT, Swing, JavaFX & SWT 1
berserkerdq2 Buttons und Shapes sehen ja nach Screengröße klein oder zu groß aus, jemand eine Idee, was man tun kann? AWT, Swing, JavaFX & SWT 1
ExceptionOfExpectation Mit einer laufenden GUI Applikation eine Datei in dem Rechner löschen AWT, Swing, JavaFX & SWT 2
Jose05 Aus einer normalen Java Klasse eine FXML-Klasse laden AWT, Swing, JavaFX & SWT 12
G Gibt es eine Möglichkeit, in Java alle möglichen Zeichen automatisch tippen zu lassen? AWT, Swing, JavaFX & SWT 13
J Ich kriege eine Fehler Messesage bei meinem Media Player AWT, Swing, JavaFX & SWT 8
I Einbindung eines jpg/png/icons in eine GUI AWT, Swing, JavaFX & SWT 1
mrbody234 ArrayList<Message> in eine TableView visualisieren AWT, Swing, JavaFX & SWT 2
U Gibt es eine Möglichkeit statt concatenate einen anderen Befehl zu nutzen? AWT, Swing, JavaFX & SWT 9
D Tastaturabfragen CTRL+t, CTRL+E bei eine JTable, bestehend aus JTextAteas AWT, Swing, JavaFX & SWT 4
G JavaFX Wert aus DB lesen, wenn erfolgreich automatisch eine fxml laden, möglich? AWT, Swing, JavaFX & SWT 2
Lukas2904 Wie speicher ich eine Einstellung? AWT, Swing, JavaFX & SWT 1
T Getter und Setter für eine Stage AWT, Swing, JavaFX & SWT 6
P Zwei JTables auf eine A4-Seite mit einstellbaren Rändern AWT, Swing, JavaFX & SWT 9
Monokuma 2D-Grafik Imageimport durch eine gezeichnete Form ersetzen AWT, Swing, JavaFX & SWT 16
M Eine Datei auf den Apache Server hochladen - über das Menü im JavaProgramm AWT, Swing, JavaFX & SWT 7
B JavaFX Warum wird hier eine NullPointer-Exception geworfen? AWT, Swing, JavaFX & SWT 7
VPChief Gibt es eine möglichkeit Dateien aus der jar datei zu kopieren? AWT, Swing, JavaFX & SWT 46
B Swing Sudoku: Laden / Speichern von Zahlen aus/in mehrere JTextFields aus/in eine(r) Textdatei AWT, Swing, JavaFX & SWT 9
P Swing Icon einfügen wirft eine Fehlermeldung AWT, Swing, JavaFX & SWT 3
F Variablen an eine Form binden? AWT, Swing, JavaFX & SWT 2
V Swing für jedes Kästchen eine eigene Farbe AWT, Swing, JavaFX & SWT 2
F Wie bekomme ich den Wert der ComboBox in eine Variable gespeichert welche ich für meinen ActionListener nutzen kann? AWT, Swing, JavaFX & SWT 3
W JavaFX Warum kriege ich eine Exception? AWT, Swing, JavaFX & SWT 23
karlmasutra JavaFX Zugriff auf eine erzeugte Scene aus einer anderen Klasse AWT, Swing, JavaFX & SWT 1
Informatiknoob AWT Zahlenraten (eine Zahl zwischen 1 und 10) AWT, Swing, JavaFX & SWT 1
A eine Fehler AWT, Swing, JavaFX & SWT 9
TheJavaKid Auf eine Zeichnung im Canvas reagieren AWT, Swing, JavaFX & SWT 13
A JavaFX Daten in eine HTML-Table mit JS schreiben AWT, Swing, JavaFX & SWT 3
B JavaFX TableView eine Zeile markieren AWT, Swing, JavaFX & SWT 5
J jButton soll nach klicken eine Variable um 1 erhöhen AWT, Swing, JavaFX & SWT 2
J Compiler in der JavaFX stop() Methode warten lassen bist eine Aktion in einer anderen Scene gemacht AWT, Swing, JavaFX & SWT 5
J Swing JavaProgramm für Verschlüssen für eine Datei AWT, Swing, JavaFX & SWT 19
xYurisha JLabel Text einer geöffneten Gui über eine andere Klasse ändern! AWT, Swing, JavaFX & SWT 3
J JavaFX Die Webview stellt eine Webseite nicht dar AWT, Swing, JavaFX & SWT 0
M JavaFX Ein Labeltext eine zeitlang anzeigen dann weiter machen AWT, Swing, JavaFX & SWT 3
F Event wenn Maus eine JList verlässt AWT, Swing, JavaFX & SWT 13
I JAVAFX - Übergabe der Inhalte an eine Scene - Wo ist der Vorteil gegenüber Swing? AWT, Swing, JavaFX & SWT 2
Joker4632 JFrame in eine Runnable auslagern? AWT, Swing, JavaFX & SWT 4
A JScrollPane soll JPanel mit JButtons enthalten und eine Scollbar anzeigen AWT, Swing, JavaFX & SWT 1
B Wie erstelle ich eine JavaFX Anwendung von diesem Code? AWT, Swing, JavaFX & SWT 3
Sanni94 JavaFX Kann man eine Grafik in einen Text einbinden? AWT, Swing, JavaFX & SWT 2
Java_RY AWT Frame in eine eigene klasse auslagern und aufrufen AWT, Swing, JavaFX & SWT 6
I 2D-Grafik Problem beim Ändern der Farbe eine 2d Objekts AWT, Swing, JavaFX & SWT 3
G Eine paint-Methode, 2 Welten? AWT, Swing, JavaFX & SWT 3
Thallius Swing JDatePicker oder Sucht jemand eine Aufgabe? AWT, Swing, JavaFX & SWT 0
K Wie kann ich eine Variable zwischen Tab Klassen weitergeben ? AWT, Swing, JavaFX & SWT 7
D JavaFX Erkennen wenn eine Anwendung geschlossen wird und etwas tun? AWT, Swing, JavaFX & SWT 4
R Swing Durch JComboBox-Item eine TextArea aktualisieren AWT, Swing, JavaFX & SWT 2
M Wie binde ich eine JavaFX ProgressBar an eine Datei Übertragung? AWT, Swing, JavaFX & SWT 2
D Objekte einer Oberfläche in eine Datei/Ordner speichern AWT, Swing, JavaFX & SWT 9
A Mit dem Scene Builder eine Collage erstellen (Bilder beziehen aus Flickr) AWT, Swing, JavaFX & SWT 1
A JFace Wizard: Ist es möglich eine Page zu löschen? AWT, Swing, JavaFX & SWT 2
L Swing Wie programmiere ich eine eigene GUI? AWT, Swing, JavaFX & SWT 12
M Combo Box auswahl in eine Datenbank speichern AWT, Swing, JavaFX & SWT 1
M Swing JTextField getText Mehtode übergeben in eine Klasse zu einer Rechnung AWT, Swing, JavaFX & SWT 1
D AWT Das ganze GUI in eine Klasse? AWT, Swing, JavaFX & SWT 1
J JavaFX eine Art Tabelle, jedoch mit mehreren Zeilen AWT, Swing, JavaFX & SWT 2
L Zwei String Array in eine Spalte einfügen AWT, Swing, JavaFX & SWT 1
U LookAndFeel für eine Komponente AWT, Swing, JavaFX & SWT 2
E Mit Netbeans von einer Form auf eine Komponente einer anderen Form zugreifen AWT, Swing, JavaFX & SWT 2
G Zeichnen auf eine schwergewichtige Komponente? AWT, Swing, JavaFX & SWT 0
S Swing Update eine JTabelle nach einer Drag&Drop Operation AWT, Swing, JavaFX & SWT 0
M Über eine JMenuBar überprüfen ob ein JCheckBoxMenuItem selectiert ist. AWT, Swing, JavaFX & SWT 4
M Wie kann ich eine an Apple Automator angelehnte GUI erstellen? AWT, Swing, JavaFX & SWT 1
A JavaFX Eine Task mit einer ProgressBar verbinden AWT, Swing, JavaFX & SWT 0
S JavaFX Canvas - nur eine Figur auf der Zeichenfläche färben? AWT, Swing, JavaFX & SWT 1
S Swing Mit einem Link eine Methode aufrufen AWT, Swing, JavaFX & SWT 2
C Swing Durch Inhaltsänderung eines JTextfields eine Funktion aufrufen AWT, Swing, JavaFX & SWT 5
G 2D-Slider bzw. eine graphische Auswahlkomponente die sich so verhält AWT, Swing, JavaFX & SWT 6
H Lust auf eine Open-Source Lösung für universelle Java Client-Technologie? AWT, Swing, JavaFX & SWT 11
T Aus JAVA.Jar GUI eine Flash-Datei machen AWT, Swing, JavaFX & SWT 3
S 5 Playlisten eine Skip() AWT, Swing, JavaFX & SWT 4
M SWT Browser nur eine Seite erlauben AWT, Swing, JavaFX & SWT 3
G Daten in eine JTable schreiben AWT, Swing, JavaFX & SWT 3
K GUI Elemente über eine separate Textdatei beschriften? AWT, Swing, JavaFX & SWT 4
G noch eine Frage zum EventDispachThread AWT, Swing, JavaFX & SWT 4
I Anhand ButtonGroup eine Auswahl treffen AWT, Swing, JavaFX & SWT 2
B Nach dem Öffnen des Dialogs eine Aktion ausführen. AWT, Swing, JavaFX & SWT 6
W Funktion aus einer Java Datei in eine andere einbauen AWT, Swing, JavaFX & SWT 25
A Swing Text auf eine Seite an beliebigen Orten schreiben AWT, Swing, JavaFX & SWT 6
G Swing Value von einer JScrollBar auf eine andere übertragen AWT, Swing, JavaFX & SWT 2
Rudolf Swing Wie testet man am besten eine GUI? AWT, Swing, JavaFX & SWT 3
P Swing Alle Zeilen einer Spalte (jTable) zusammen zählen und in eine eigene Zeile das Ergebnis schreiben. AWT, Swing, JavaFX & SWT 7
F GroupableTableHeader zeigt nur eine Zeile AWT, Swing, JavaFX & SWT 4
N Swing Optimale Höhe eine JTextPanes bei festgelegter Breite bestimmen AWT, Swing, JavaFX & SWT 23
R Swing Mit Swing eine throws Exception Methode öffnen AWT, Swing, JavaFX & SWT 3
M Eine Kugel nach rechts bewegen AWT, Swing, JavaFX & SWT 5
C Swing NullPointerException beim Hinzufügen von Checkboxes in eine ArrayList AWT, Swing, JavaFX & SWT 5
GUI-Programmer LayoutManager Kurze Layout Frage - eine komponente mittig? AWT, Swing, JavaFX & SWT 5
lumo SWT Zeichnen bescheunigen bzw eine allg. Frage AWT, Swing, JavaFX & SWT 8
M Auf einem Bild eine Markierung aufziehen AWT, Swing, JavaFX & SWT 3
R Eine Instanz von JPanel mehrfach hinzufügen AWT, Swing, JavaFX & SWT 2
B eine .jar erzeugen AWT, Swing, JavaFX & SWT 4
M In JField eine Kommazahl darstellen java.lang.NumberFormatException AWT, Swing, JavaFX & SWT 4
N Button on click eine andere Klasse aufrufen... AWT, Swing, JavaFX & SWT 2
M Eine nicht korrekte Darstellung bei repaint() warum? AWT, Swing, JavaFX & SWT 4
M Ein Tab eine JTabbedPane durch Button Druck öffen AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben