forked from AdvancedProgramming1404/HW-07-JavaFX
main
Reviewed-on: #1
🎵 Music Player
A minimal JavaFX music player with playlist support and dark mode.
Features
- Play, pause, skip, and seek through songs
- Shuffle and repeat modes
- Volume control
- Album art display (loaded from file metadata)
- Library tab — manage all your songs
- Playlists tab — create custom playlists and add songs to them
- Dark mode toggle
- Right-click on any song to add it to a playlist
Project Structure
MusicPlayer/
├── src/
│ └── main/
│ ├── java/sbu/javafx/
│ │ ├── MainApp.java
│ │ ├── MusicController.java
│ │ ├── Song.java
│ │ └── Playlist.java
│ └── resources/sbu/javafx/
│ ├── player.fxml
│ └── style.css
└── pom.xml
Requirements
- Java 17+
- JavaFX 17+
- JAudioTagger 3.0.1 (for reading song metadata)
Dependencies (pom.xml)
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>17</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>17</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-media</artifactId>
<version>17</version>
</dependency>
<dependency>
<groupId>net.jthink</groupId>
<artifactId>jaudiotagger</artifactId>
<version>3.0.1</version>
</dependency>
How to Run
mvn clean javafx:run
How to Use
Adding Songs
- Go to the Library tab
- Click + Add Song
- Select one or more audio files (mp3, wav, aac, flac)
- Songs will appear in the library with their metadata
Playing Songs
- Double-click any song in the library to start playing
- Use the control buttons to play/pause, skip, or go back
- Drag the progress bar to seek
Playlists
- Go to the Playlists tab
- Click + New to create a playlist
- Go back to the Library tab
- Right-click any song and select Add to Playlist
- Double-click a playlist to open it
- Double-click a song inside the playlist to play it
Dark Mode
- Click the 🌙 button on the top right of the player panel to toggle dark mode
Supported Formats
| Format | Supported |
|---|---|
| MP3 | ✅ |
| WAV | ✅ |
| AAC | ✅ |
| FLAC | ✅ |
Preview
Languages
Java
74.8%
CSS
25.2%



