2017-04-27 3 views
-1

Ich habe versucht, einen Musik-Player zu erstellen, und ein Teil davon erfordert, einen Zeitschieberegler zu hören. Also habe ich zu der Zeit Folie hinzugefügt und das ist der Fehler, den ich bekommen:Meine Methode ist nicht abstrakt und kann eine andere Methode nicht überschreiben

enter image description here

Ich habe versucht, meinen Kopf herum, wie Sie diesen Fehler zu beheben und das ganze Geschäft des überwiegenden.

Kann mir jemand in die richtige Richtung zeigen, wie man diesen Fehler beheben kann?

Mein Code:

public class graphicalController implements Initializable 
{ 
    //GUI Decleration 
    @FXML 
    public Button centreButton; 
    @FXML 
    public Button backButton; 
    @FXML 
    public Button forwardButton; 
    @FXML 
    public ToggleButton muteToggle; 
    @FXML 
    public MenuItem loadFolder; 
    @FXML 
    public Text nameText; 
    @FXML 
    public Text albumText; 
    @FXML 
    public Text timeText; 
    @FXML 
    public Text artistText; 
    @FXML 
    public Slider timeSlider; 
    @FXML 
    public Slider volumeSlider; 

    //Controller Decleration 
    String absolutePath; 
    SongQueue q = new SongQueue(); 
    MediaPlayer player; 
    Status status; 
    boolean isPlaying = false; 
    boolean isMuted = false; 
    boolean isPaused = false; 
    private Duration duration; 

    /** 
    * The constructor. The constructor is called before the initialize() 
    * method. 
    * 
    * Anything in regards to CSS styling with FXML MUST be done within the initialize method. 
    */ 

    public graphicalController() { 

    } 

    /** 
    * Initializes the controller class. This method is automatically called 
    * after the fxml file has been loaded. 
    */ 

    @FXML 
    public void initialize(URL location, ResourceBundle resources) 
    { 

     centreButton.setStyle("-fx-background-image: url('/Resources/Play_Button.png')"); 
     centreButton.setText(""); 

     backButton.setStyle("-fx-background-image: url('/Resources/Back_Button.png')"); 
     backButton.setText(""); 

     forwardButton.setStyle("-fx-background-image: url('/Resources/Forward_Button.png')"); 
     forwardButton.setText(""); 

     muteToggle.setStyle("-fx-background-image: url('/Resources/ToggleSound_Button.png')"); 
     muteToggle.setText(""); 

     nameText.setText(""); 
     albumText.setText(""); 
     artistText.setText(""); 

     volumeSlider.valueProperty().addListener(new ChangeListener<Number>() { 
       @Override 
       public void changed(ObservableValue<? extends Number> observable, 
       Number oldValue, Number newValue) { 
        double sliderValue = newValue.intValue(); 
        handleVolumeSlider(sliderValue); 
       } 
      }); 

     timeSlider.valueProperty().addListener(new ChangeListener<Number>() { 
       @Override 
       public void changed(ObservableValue<? extends Number> observable, 
       Number oldValue, Number newValue) { 

        //outputTextArea.appendText("Slider Value Changed (newValue: " + newValue.intValue() + ")\n"); 
       } 
      }); 

     timeSlider.valueProperty().addListener(new InvalidationListener() { 
       public void invalidated(Observable ov) { 
        if (timeSlider.isValueChanging()) { 
         // multiply duration by percentage calculated by slider position 
         if(duration!=null) { 
          player.seek(duration.multiply(timeSlider.getValue()/100.0)); 
         } 
         updateValues(); 
        } 
       } 
      }); 

    } 


    public void setSongText() { 
     String file = q.peek().fileName; 
     String songName = q.peek().songName; 
     String albumName = q.peek().albumName; 
     String artistName = q.peek().artistName; 
     if (songName == "") { 
      songName = "Song name not specified in metadata."; 
     } 
     else if (albumName == "") 
     { 
      albumName = " Album name not specified in metadata."; 
     } 
     else if (artistName == "") 
     { 
      artistName = "Artist name not specified in metadata."; 
     } 
     nameText.setText(songName); 
     albumText.setText(albumName); 
     artistText.setText(artistName); 
    } 
} 

Sie mein Problem in der Methode initialize finden.

+2

Ich habe den starken Verdacht, dass Sie * wirklich * 319 Zeilen Code benötigen, um Ihr Problem zu demonstrieren. Bitte reduziere dies auf [mcve]. –

+0

Messepunkt. Ich habe es aus Nicht-Faulheit gemacht, ich dachte nur, es wäre eine bessere Option, das ganze Programm zu verstehen. Sie haben jedoch recht, es gibt einige Methoden, die ich löschen kann, die nicht Teil dieses Problems sind. Standby, ich mache es jetzt. –

Antwort

2

Verwenden Sie den richtigen Observable Typ? Es sollte vom Typ javafx.beans.Observable sein.

+0

Oh Mann. Ich stoße gerade jetzt buchstäblich auf den Tisch. Normalerweise würde Eclipse vorschlagen, wenn ich eine neue Sache importieren möchte. Anscheinend nicht, danke, dass Sie das erkannt haben. Würde nicht überleben, wenn es nicht für diese Gemeinschaft wäre! –

Verwandte Themen