This project involves implementing a Java program that buildsand manages a database of songs using a GUI-based user interface.The application will consist of a single frame that allows a userto add, edit, or delete songs from the database.Here’s a rough prototype for what the frame might look like.Yours doesn’t have to look exactly like this…the prototype isprovided just to help you envision the ultimate application:The application shall work as follows:1. Upon start-up, the application will read the database file.The path of the database file will be supplied by a run-timeparameter. If the database file does not exist, the user will betold the database does not exist and prompted (non-GUI text prompt)asking if they want to create a new one. If the user answerspositive, the application will continue with an initially emptysong database. If the user answers negatively, the application willexit. An example of an appropriate start-up command is as follows:java SongDB mySongDB.data2. The original state of the frame shall display the combo boxwith the first song in the database selected. The Item Code,Description, Artist, Album, and Price fields for this item shall bedisplayed with the fields disabled (non-editable). The Add, Edit,Delete, and Exit buttons shall be enabled, and the Accept andCancel buttons shall be disabled.3. To add a song, the user clicks on the Add button. This willcause the application to clear and enable the Item Code,Description, Artist, Album, and Price fields so the user can enterinformation for the new song. The Edit and Delete buttons are alsodisabled, and the Accept and Cancel buttons are enabled. When theuser presses the Accept button, the new song will be added to thedatabase and combo box. If the user presses the Cancel button, theentry transaction is canceled and the frame reverts to its originalstate. 4. To edit an existing song, the user shall select the songfrom the combo box. The information for the selected song shallthen be displayed in the disabled fields. The user then presses theEdit button, which enables the Description, Artist, and Pricefields. The user may not change the Item Code. Select Song: YellowSubmarine Item Code: BT012 Description: Yellow Submarine Artist:The Beatles Album: Beatles Greatest Hits 1 Price: 1.99 Add EditDelete Accept Cancel Exit The Add, Edit, and Delete buttons aredisabled, and the Accept and Cancel buttons are enabled. If theuser presses the Accept button, the changes are saved and the combobox is updated. If the user presses the Cancel button, the edittransaction is canceled and the frame reverts to its originalstate.5. To delete an existing song, the user shall select the songfrom the combo box. The information for the song shall then bedisplayed in the disabled fields. If the user presses the Deletebutton, the song is deleted from the database and the combobox.6. When the user presses the Exit button the application shallterminate. The current state of the database shall be saved in afile using the pathname supplied at program start-up (seeabove).7. Data fields shall be validated to ensure they are not blankwith appropriate error messages displayed. If the song is a single,the text “None” will be used for the album name. The price fieldshall be validated to ensure only numeric data is entered.