diff --git a/src/main/java/sbu/javafx/Main.java b/src/main/java/sbu/javafx/Main.java
index 1385424..d24e9e3 100644
--- a/src/main/java/sbu/javafx/Main.java
+++ b/src/main/java/sbu/javafx/Main.java
@@ -18,18 +18,27 @@ public class Main extends Application {
controller.musicsListView.getItems().addAll(
new Song("Blinding Lights", "The Weeknd"),
new Song("Flowers", "Miley Cyrus"),
- new Song("As It Was", "Harry Styles")
+ new Song("As It Was", "Harry Styles"),
+ new Song("Comme des enfants", "Coert De Pirate"),
+ new Song("Slow Down", "GRAE"),
+ new Song("Cigarettes out the window", "TV Girl"),
+ new Song("Shape of My Heart", "Sting"),
+ new Song("deja vu", "Olivia Rodirgo"),
+ new Song("Do It To It", "Acraze"),
+ new Song("Bones", "Imagine Dragons"),
+ new Song("Bunker", "Balthazar")
);
controller.setupListView(controller.musicsListView);
- Scene scene = new Scene(root, 600, 500);
+ Scene scene = new Scene(root, 500, 600);
scene.getStylesheets().add(
getClass().getResource("/css/light.css").toExternalForm()
);
primaryStage.setTitle("Music Player");
primaryStage.setScene(scene);
+ primaryStage.setResizable(false);
primaryStage.show();
}
diff --git a/src/main/java/sbu/javafx/MusicController.java b/src/main/java/sbu/javafx/MusicController.java
index b97a82c..86f3b72 100644
--- a/src/main/java/sbu/javafx/MusicController.java
+++ b/src/main/java/sbu/javafx/MusicController.java
@@ -1,18 +1,17 @@
package sbu.javafx;
+import javafx.animation.PauseTransition;
import javafx.fxml.FXML;
import javafx.event.ActionEvent;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
-import javafx.scene.control.Button;
-import javafx.scene.control.Label;
-import javafx.scene.control.ListCell;
-import javafx.scene.control.ListView;
+import javafx.scene.control.*;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.*;
import javafx.scene.Scene;
import javafx.scene.layout.VBox;
+import javafx.util.Duration;
public class MusicController {
@@ -28,14 +27,21 @@ public class MusicController {
@FXML
Button playPauseBtn;
@FXML
+ Button audioBtn;
+ @FXML
Button openPlaylistBtn;
@FXML
Button themeToggleBtn;
+ @FXML
+ private Label messageLabel;
private boolean isDarkMode=true;
private boolean isPlaying=false;
+ private boolean isMute=false;
private Song currentSong = null;
ImageView playIcon;
ImageView pauseIcon;
+ ImageView audioIcon;
+ ImageView muteIcon;
// TODO: Define your UI components using the @FXML annotation.
@@ -43,14 +49,22 @@ public class MusicController {
public void initialize() {
Image playImg = new Image(getClass().getResourceAsStream("/image/play.png"));
Image pauseImg = new Image(getClass().getResourceAsStream("/image/pause.png"));
+ Image audioImg= new Image(getClass().getResourceAsStream("/image/icons8-audio-64.png"));
+ Image muteImg= new Image(getClass().getResourceAsStream("/image/icons8-mute-64.png"));
playIcon = new ImageView(playImg);
pauseIcon = new ImageView(pauseImg);
+ audioIcon= new ImageView(audioImg);
+ muteIcon= new ImageView(muteImg);
playIcon.setFitWidth(35);
playIcon.setFitHeight(35);
pauseIcon.setFitWidth(35);
pauseIcon.setFitHeight(35);
+ audioIcon.setFitWidth(35);
+ audioIcon.setFitHeight(35);
+ muteIcon.setFitWidth(35);
+ muteIcon.setFitHeight(35);
playPauseBtn.setGraphic(playIcon);
@@ -169,11 +183,32 @@ public class MusicController {
}
}
+ @FXML
+ public void mute(ActionEvent e){
+ isMute=!isMute;
+ if(isMute){
+ audioBtn.setGraphic(audioIcon);
+ }else{
+ audioBtn.setGraphic(muteIcon);
+ }
+ }
+
//TODO: Logic to add a specific song to the user's playlist.
public void addToPlaylist(ActionEvent event, Song song) {
//Add the song to a list or update a ListView.
playlistListView.getItems().add(song);
+
+ messageLabel.setText("Added to playlist!");
+ messageLabel.setVisible(true);
+
+ PauseTransition pause = new PauseTransition(Duration.seconds(2));
+
+ pause.setOnFinished(e -> {
+ messageLabel.setVisible(false);
+ });
+
+ pause.play();
}
// TODO:This method should open a new window or change the current scene to display the "Playlist" page.
@@ -183,8 +218,15 @@ public class MusicController {
musicsListView.setVisible(false);
if(playlistListView!=null)
playlistListView.setVisible(true);
- else
- throw new RuntimeException("Playlist is empty");
+
+ else{
+ Alert alert = new Alert(Alert.AlertType.WARNING);
+
+ alert.setTitle("Empty Playlist");
+ alert.setHeaderText(null);
+ alert.setContentText("Playlist is empty!");
+ alert.showAndWait();
+ }
}
}
diff --git a/src/main/java/sbu/javafx/Song.java b/src/main/java/sbu/javafx/Song.java
index d24ae61..3cf0528 100644
--- a/src/main/java/sbu/javafx/Song.java
+++ b/src/main/java/sbu/javafx/Song.java
@@ -9,6 +9,11 @@ public class Song {
this.singer=singer;
}
+ @Override
+ public String toString() {
+ return " ";
+ }
+
public String getName() {
return name;
}
diff --git a/src/main/resources/image/forward.png b/src/main/resources/image/forward.png
deleted file mode 100644
index 2b0e588..0000000
Binary files a/src/main/resources/image/forward.png and /dev/null differ
diff --git a/src/main/resources/image/icons8-audio-64.png b/src/main/resources/image/icons8-audio-64.png
new file mode 100644
index 0000000..1b41490
Binary files /dev/null and b/src/main/resources/image/icons8-audio-64.png differ
diff --git a/src/main/resources/image/icons8-end-64.png b/src/main/resources/image/icons8-end-64.png
new file mode 100644
index 0000000..63d18c2
Binary files /dev/null and b/src/main/resources/image/icons8-end-64.png differ
diff --git a/src/main/resources/image/icons8-mute-64.png b/src/main/resources/image/icons8-mute-64.png
new file mode 100644
index 0000000..86b418c
Binary files /dev/null and b/src/main/resources/image/icons8-mute-64.png differ
diff --git a/src/main/resources/image/icons8-skip-to-start-64.png b/src/main/resources/image/icons8-skip-to-start-64.png
new file mode 100644
index 0000000..8d2dde0
Binary files /dev/null and b/src/main/resources/image/icons8-skip-to-start-64.png differ
diff --git a/src/main/resources/image/icons8-synchronize-64.png b/src/main/resources/image/icons8-synchronize-64.png
new file mode 100644
index 0000000..694bb5c
Binary files /dev/null and b/src/main/resources/image/icons8-synchronize-64.png differ
diff --git a/src/main/resources/image/rewind.png b/src/main/resources/image/rewind.png
deleted file mode 100644
index c09cd59..0000000
Binary files a/src/main/resources/image/rewind.png and /dev/null differ
diff --git a/src/main/resources/sbu/javafx/App-view.fxml b/src/main/resources/sbu/javafx/App-view.fxml
index ec21eaa..16477cb 100644
--- a/src/main/resources/sbu/javafx/App-view.fxml
+++ b/src/main/resources/sbu/javafx/App-view.fxml
@@ -18,14 +18,19 @@
+
+
-
+
-
+
-
+
@@ -33,12 +38,23 @@
-
+
+
@@ -56,12 +72,22 @@
-
+
+