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
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.
Ich habe den starken Verdacht, dass Sie * wirklich * 319 Zeilen Code benötigen, um Ihr Problem zu demonstrieren. Bitte reduziere dies auf [mcve]. –
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. –