Exercise on Inner Class, Exception and Threading
Buatlah program java Aplikasi Music Player sebagai berikut
- Buatlah sebuah Java Project MusicPlayer
- Download library (jl 1.0.1.jar) dari link [JLayer] (http://www.javazoom.net/javalayer/javalayer.html)
- Add library jLayer pada project MusicPlayer
- Buatlah kelas Application sebagai berikut
- Import library berikut pada kelas Application
- class ThreadPlayer merupakan Inner Class
- extends Thread
- constructor
- menginisialisasi String filepath
- method run()
- lakukan proses berikut dalam blok try-catch
- Baca file yang diambil dari String filepath menggunakan FileInputStream
- Instansiasi objek Player untuk memainkan file musik yang dibaca
- Putar musik menggunakan method play() dari objek Player
- tambahkan catch FileNotFoundException jika file pada filepath tidak ditemukan
- tambahkan catch JavaLayerException jika terjadi error saat memainkan musik
- isi catch melempar new IllegalStateException
- Menginstansiasi Arraylist musicList baru
- Menambahkan String path ke dalam ArrayList musicList
- menghapus String path ke-i dari musicList
- method akan memutar lagu ke-i dari dalam musicList
- set nowplaying = i
- ambil String path music ke-i dari musicList
- instansiasi objek ThreadPlayer baru menggunakan String path yang diambil
- jalankan objek ThreadPlayer dengan memanggil method start()
- method menghentikan music yang sedang diputar
- memainkan music yang berada di setelah music yang sedang diputar di dalam listMusic
- method dipanggil jika nowPlaying bukanlah music terakhir di dalam listMusic
- method menghentikan music yang sedang diputar
- memainkan music yang berada di sebelum music yang sedang diputar di dalam listMusic
- method dipanggil jika nowPlaying bukanlah music pertama di dalam listMusic
![10] (/asset/10.JPG)
- Buatlah class JFrame PlayerGui.java dengan tampilan sebagai berikut
- Komponen yang ada :
- listMusic : JList
- txFieldPlaying : JTextField, set Editable = false
- btnAdd, btnDelete, btnPrev, btnPlay, btnStop, btnNext
- hapus main method (psvm) di dalam GUI
- tambahkan method getter objek untuk mengembalikan setiap objek button
- method void setListMusic( String[] musicList )
- method mengeset JList listMusic dengan data musicList dengan memanggil method setListData
- method void setTxFieldPlaying( String filename )
- method mengeset text field txFieldPlaying dengan string filename dengan memanggil method setText
- method int getSelectedMusic()
- import java.awt.event.ActionListener
- method void addListener(ActionListener e)
- tambahkan add listener pada setiap tombol dengan memanggil method addActionListener
- Buatlah class Controller.java sesuai class diagram berikut
- import library berikut
- kelas Controller implements ActionListener
- implementasikan method actionPerformed(ActionEvent ae)
- Constructor menginstansiasi Application app
- Constructor menginstansiasi GUI view
- set visible view = true
- set lisener view dengan controller this
- set view listMusic dengan musicList dari objek app
- get Object source action event
- lakukan proses berikut dalam blok try-catch
- pada blok catch tampilkan window JOptionPane dan tampilkan pesan error yang didapat
- Buatlah class Driver.java yang memiliki main method (psvm)
- instansiasi objek Controller()
- cobalah aplikasi music player yang telah dibuat