From 61b82538636b78a8fbd1f0b3e7be71ae7ecdf2c1 Mon Sep 17 00:00:00 2001 From: Gunturf Date: Wed, 17 May 2017 17:38:51 +0700 Subject: [PATCH 1/2] Task_5 Task_5 Selesai --- .gitignore | 2 + Task5/build.xml | 73 ++ Task5/manifest.mf | 3 + Task5/nbproject/build-impl.xml | 1420 ++++++++++++++++++++++++ Task5/nbproject/genfiles.properties | 8 + Task5/nbproject/project.properties | 75 ++ Task5/nbproject/project.xml | 15 + Task5/src/Aplicationn/Application.java | 84 ++ Task5/src/Controller/Controller.java | 79 ++ Task5/src/Driver/Driver.java | 21 + Task5/src/PlayerGui/PlayerGui.form | 154 +++ Task5/src/PlayerGui/PlayerGui.java | 194 ++++ 12 files changed, 2128 insertions(+) create mode 100644 .gitignore create mode 100644 Task5/build.xml create mode 100644 Task5/manifest.mf create mode 100644 Task5/nbproject/build-impl.xml create mode 100644 Task5/nbproject/genfiles.properties create mode 100644 Task5/nbproject/project.properties create mode 100644 Task5/nbproject/project.xml create mode 100644 Task5/src/Aplicationn/Application.java create mode 100644 Task5/src/Controller/Controller.java create mode 100644 Task5/src/Driver/Driver.java create mode 100644 Task5/src/PlayerGui/PlayerGui.form create mode 100644 Task5/src/PlayerGui/PlayerGui.java diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..46bf28b --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/Task5/nbproject/private/ +/Task5/build/ \ No newline at end of file diff --git a/Task5/build.xml b/Task5/build.xml new file mode 100644 index 0000000..b82af13 --- /dev/null +++ b/Task5/build.xml @@ -0,0 +1,73 @@ + + + + + + + + + + + Builds, tests, and runs the project Task5. + + + diff --git a/Task5/manifest.mf b/Task5/manifest.mf new file mode 100644 index 0000000..328e8e5 --- /dev/null +++ b/Task5/manifest.mf @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +X-COMMENT: Main-Class will be added automatically by build + diff --git a/Task5/nbproject/build-impl.xml b/Task5/nbproject/build-impl.xml new file mode 100644 index 0000000..1ca1ad3 --- /dev/null +++ b/Task5/nbproject/build-impl.xml @@ -0,0 +1,1420 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must set src.dir + Must set test.src.dir + Must set build.dir + Must set dist.dir + Must set build.classes.dir + Must set dist.javadoc.dir + Must set build.test.classes.dir + Must set build.test.results.dir + Must set build.classes.excludes + Must set dist.jar + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must set javac.includes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + No tests executed. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must set JVM to use for profiling in profiler.info.jvm + Must set profiler agent JVM arguments in profiler.info.jvmargs.agent + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select some files in the IDE or set javac.includes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + To run this application from the command line without Ant, try: + + java -jar "${dist.jar.resolved}" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select one file in the IDE or set run.class + + + + Must select one file in the IDE or set run.class + + + + + + + + + + + + + + + + + + + + + + + Must select one file in the IDE or set debug.class + + + + + Must select one file in the IDE or set debug.class + + + + + Must set fix.includes + + + + + + + + + + This target only works when run from inside the NetBeans IDE. + + + + + + + + + Must select one file in the IDE or set profile.class + This target only works when run from inside the NetBeans IDE. + + + + + + + + + This target only works when run from inside the NetBeans IDE. + + + + + + + + + + + + + This target only works when run from inside the NetBeans IDE. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select one file in the IDE or set run.class + + + + + + Must select some files in the IDE or set test.includes + + + + + Must select one file in the IDE or set run.class + + + + + Must select one file in the IDE or set applet.url + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select some files in the IDE or set javac.includes + + + + + + + + + + + + + + + + + + + + Some tests failed; see details above. + + + + + + + + + Must select some files in the IDE or set test.includes + + + + Some tests failed; see details above. + + + + Must select some files in the IDE or set test.class + Must select some method in the IDE or set test.method + + + + Some tests failed; see details above. + + + + + Must select one file in the IDE or set test.class + + + + Must select one file in the IDE or set test.class + Must select some method in the IDE or set test.method + + + + + + + + + + + + + + Must select one file in the IDE or set applet.url + + + + + + + + + Must select one file in the IDE or set applet.url + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Task5/nbproject/genfiles.properties b/Task5/nbproject/genfiles.properties new file mode 100644 index 0000000..505a65c --- /dev/null +++ b/Task5/nbproject/genfiles.properties @@ -0,0 +1,8 @@ +build.xml.data.CRC32=df77899f +build.xml.script.CRC32=001ea16d +build.xml.stylesheet.CRC32=8064a381@1.80.1.48 +# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. +# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. +nbproject/build-impl.xml.data.CRC32=df77899f +nbproject/build-impl.xml.script.CRC32=b1b48e17 +nbproject/build-impl.xml.stylesheet.CRC32=830a3534@1.80.1.48 diff --git a/Task5/nbproject/project.properties b/Task5/nbproject/project.properties new file mode 100644 index 0000000..2a147fe --- /dev/null +++ b/Task5/nbproject/project.properties @@ -0,0 +1,75 @@ +annotation.processing.enabled=true +annotation.processing.enabled.in.editor=false +annotation.processing.processor.options= +annotation.processing.processors.list= +annotation.processing.run.all.processors=true +annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output +build.classes.dir=${build.dir}/classes +build.classes.excludes=**/*.java,**/*.form +# This directory is removed when the project is cleaned: +build.dir=build +build.generated.dir=${build.dir}/generated +build.generated.sources.dir=${build.dir}/generated-sources +# Only compile against the classpath explicitly listed here: +build.sysclasspath=ignore +build.test.classes.dir=${build.dir}/test/classes +build.test.results.dir=${build.dir}/test/results +# Uncomment to specify the preferred debugger connection transport: +#debug.transport=dt_socket +debug.classpath=\ + ${run.classpath} +debug.test.classpath=\ + ${run.test.classpath} +# Files in build.classes.dir which should be excluded from distribution jar +dist.archive.excludes= +# This directory is removed when the project is cleaned: +dist.dir=dist +dist.jar=${dist.dir}/Task5.jar +dist.javadoc.dir=${dist.dir}/javadoc +excludes= +includes=** +jar.compress=false +javac.classpath=\ + ${libs.jlayer.classpath} +# Space-separated list of extra javac options +javac.compilerargs= +javac.deprecation=false +javac.external.vm=true +javac.processorpath=\ + ${javac.classpath} +javac.source=1.8 +javac.target=1.8 +javac.test.classpath=\ + ${javac.classpath}:\ + ${build.classes.dir} +javac.test.processorpath=\ + ${javac.test.classpath} +javadoc.additionalparam= +javadoc.author=false +javadoc.encoding=${source.encoding} +javadoc.noindex=false +javadoc.nonavbar=false +javadoc.notree=false +javadoc.private=false +javadoc.splitindex=true +javadoc.use=true +javadoc.version=false +javadoc.windowtitle= +main.class=Driver.Driver +manifest.file=manifest.mf +meta.inf.dir=${src.dir}/META-INF +mkdist.disabled=false +platform.active=default_platform +run.classpath=\ + ${javac.classpath}:\ + ${build.classes.dir} +# Space-separated list of JVM arguments used when running the project. +# You may also define separate properties like run-sys-prop.name=value instead of -Dname=value. +# To set system properties for unit tests define test-sys-prop.name=value: +run.jvmargs= +run.test.classpath=\ + ${javac.test.classpath}:\ + ${build.test.classes.dir} +source.encoding=UTF-8 +src.dir=src +test.src.dir=test diff --git a/Task5/nbproject/project.xml b/Task5/nbproject/project.xml new file mode 100644 index 0000000..4003184 --- /dev/null +++ b/Task5/nbproject/project.xml @@ -0,0 +1,15 @@ + + + org.netbeans.modules.java.j2seproject + + + Task5 + + + + + + + + + diff --git a/Task5/src/Aplicationn/Application.java b/Task5/src/Aplicationn/Application.java new file mode 100644 index 0000000..6498b73 --- /dev/null +++ b/Task5/src/Aplicationn/Application.java @@ -0,0 +1,84 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package Aplicationn; + +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.util.ArrayList; +import javazoom.jl.decoder.JavaLayerException; +import javazoom.jl.player.Player; + +/** + * + * @author Guntur Fatmawan + */ +public class Application { + private ArrayList musicList; + private ThreadPlayer thread; + private int nowPlaying ; + + public Application() { + musicList = new ArrayList (); + } + + public void addMusic(String path){ + musicList.add(path); + } + public String [] getMusicList(){ + return (String[]) musicList.toArray(new String[0]); + } + public String getNowPlayed(){ + return musicList.get(nowPlaying); + } + public void removeMusic(int i){ + musicList.remove(i); + } + public void play (int i){ + nowPlaying = i; + String filepath = musicList.get(i); + thread = new ThreadPlayer(filepath); + thread.start(); + } + public void stop(){ + if (thread != null){ + thread.stop(); + } + } + public void next(){ + if (nowPlaying < musicList.size() - 1){ + stop(); + play(nowPlaying + 1); + } + } + public void prev(){ + if (nowPlaying < musicList.size() + 1){ + stop(); + play(nowPlaying - 1); + } + } + + public class ThreadPlayer extends Thread { + private String filepath; + private Player player; + + public ThreadPlayer (String filepath) { + this.filepath = filepath; + } + + public void run (){ + try { + FileInputStream fis = new FileInputStream(filepath); + player = new Player(fis); + player.play(); + } catch (FileNotFoundException exc) { + throw new IllegalStateException ("File "+ filepath + " not Found "); + } catch (JavaLayerException exc) { + throw new IllegalStateException("ERROR while playing file "); + } + } + } +} + diff --git a/Task5/src/Controller/Controller.java b/Task5/src/Controller/Controller.java new file mode 100644 index 0000000..1144aec --- /dev/null +++ b/Task5/src/Controller/Controller.java @@ -0,0 +1,79 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package Controller; + +import Aplicationn.Application; +import PlayerGui.PlayerGui; +import java.awt.HeadlessException; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import javax.swing.JFileChooser; +import javax.swing.JOptionPane; +import javax.swing.filechooser.FileNameExtensionFilter; + +/** + * + * @author Guntur Fatmawan + */ +public class Controller implements ActionListener{ + private Application app; + private PlayerGui view; + + public Controller() { + app = new Application(); + view = new PlayerGui(); + view.setVisible(true); + view.addListener(this); + view.setListMusic(app.getMusicList()); + + } + + + public void actionPerformed(ActionEvent ae){ + Object source = ae.getSource(); + + try { + if (source.equals(view.getBtnAdd())){ + JFileChooser fc = new JFileChooser(); + FileNameExtensionFilter filter + = new FileNameExtensionFilter("MP3 Files", "mp3", "mp3"); + fc.setFileFilter(filter); + int returnVal = fc.showOpenDialog(view); + + if (returnVal == JFileChooser.APPROVE_OPTION){ + String path = fc.getSelectedFile().getAbsolutePath(); + app.addMusic(path); + view.setListMusic(app.getMusicList()); + } + } + else if (source.equals(view.getBtnDelete())){ + int selected = view.getSelectedMusic(); + app.removeMusic(selected); + view.setListMusic(app.getMusicList()); + } + else if (source.equals(view.getBtnPlay())){ + int selected = view.getSelectedMusic(); + app.stop(); + app.play(selected); + view.setTxFieldPlaying(app.getNowPlayed()); + } + else if (source.equals(view.getBtnStop())){ + app.stop(); + view.setTxFieldPlaying(""); + } + else if (source.equals(view.getBtnNext())){ + app.next(); + view.setTxFieldPlaying(app.getNowPlayed()); + } + else if (source.equals(view.getBtnPrev())){ + app.prev(); + view.setTxFieldPlaying(app.getNowPlayed()); + } + } catch (HeadlessException e){ + JOptionPane.showMessageDialog(view, e.getMessage()); + } +} +} diff --git a/Task5/src/Driver/Driver.java b/Task5/src/Driver/Driver.java new file mode 100644 index 0000000..c104638 --- /dev/null +++ b/Task5/src/Driver/Driver.java @@ -0,0 +1,21 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package Driver; + +import Controller.Controller; + + + +/** + * + * @author Guntur Fatmawan + */ +public class Driver { + + public static void main(String[] args) { + Controller c = new Controller(); + } +} diff --git a/Task5/src/PlayerGui/PlayerGui.form b/Task5/src/PlayerGui/PlayerGui.form new file mode 100644 index 0000000..878e0fc --- /dev/null +++ b/Task5/src/PlayerGui/PlayerGui.form @@ -0,0 +1,154 @@ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Task5/src/PlayerGui/PlayerGui.java b/Task5/src/PlayerGui/PlayerGui.java new file mode 100644 index 0000000..2e308a0 --- /dev/null +++ b/Task5/src/PlayerGui/PlayerGui.java @@ -0,0 +1,194 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package PlayerGui; + +import java.awt.event.ActionListener; + +/** + * + * @author Guntur Fatmawan + */ +public class PlayerGui extends javax.swing.JFrame { + + /** + * Creates new form PlayerGui + */ + public PlayerGui() { + initComponents(); + } + + /** + * This method is called from within the constructor to initialize the form. + * WARNING: Do NOT modify this code. The content of this method is always + * regenerated by the Form Editor. + */ + @SuppressWarnings("unchecked") + // //GEN-BEGIN:initComponents + private void initComponents() { + + txFieldPlaying = new javax.swing.JTextField(); + jLabel1 = new javax.swing.JLabel(); + btnAdd = new javax.swing.JButton(); + btnDelete = new javax.swing.JButton(); + btnPrev = new javax.swing.JButton(); + btnPlay = new javax.swing.JButton(); + btnNext = new javax.swing.JButton(); + btnStop = new javax.swing.JButton(); + jScrollPane2 = new javax.swing.JScrollPane(); + listMusic = new javax.swing.JList<>(); + + setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); + + txFieldPlaying.setEditable(false); + + jLabel1.setFont(new java.awt.Font("Times New Roman", 0, 18)); // NOI18N + jLabel1.setText("Now Playing"); + + btnAdd.setText("Add"); + + btnDelete.setText("Delete"); + + btnPrev.setText("<<"); + + btnPlay.setText("Play"); + + btnNext.setText(">>"); + btnNext.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + btnNextActionPerformed(evt); + } + }); + + btnStop.setText("Stop"); + + listMusic.setModel(new javax.swing.AbstractListModel() { + String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" }; + public int getSize() { return strings.length; } + public String getElementAt(int i) { return strings[i]; } + }); + jScrollPane2.setViewportView(listMusic); + + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); + getContentPane().setLayout(layout); + layout.setHorizontalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addGap(20, 20, 20) + .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGap(18, 18, 18) + .addComponent(txFieldPlaying, javax.swing.GroupLayout.PREFERRED_SIZE, 284, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addContainerGap(24, Short.MAX_VALUE) + .addComponent(btnAdd) + .addGap(18, 18, 18) + .addComponent(btnDelete) + .addGap(20, 20, 20) + .addComponent(btnPrev) + .addGap(18, 18, 18) + .addComponent(btnPlay) + .addGap(18, 18, 18) + .addComponent(btnStop) + .addGap(18, 18, 18) + .addComponent(btnNext)) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addComponent(jScrollPane2))) + .addContainerGap()) + ); + layout.setVerticalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(24, 24, 24) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(txFieldPlaying, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 25, Short.MAX_VALUE) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(btnNext) + .addComponent(btnStop) + .addComponent(btnPlay) + .addComponent(btnPrev) + .addComponent(btnDelete) + .addComponent(btnAdd)) + .addGap(61, 61, 61)) + ); + + pack(); + }// //GEN-END:initComponents + + private void btnNextActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnNextActionPerformed + // TODO add your handling code here: + }//GEN-LAST:event_btnNextActionPerformed + + /** + * @param args the command line arguments + */ + + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JButton btnAdd; + private javax.swing.JButton btnDelete; + private javax.swing.JButton btnNext; + private javax.swing.JButton btnPlay; + private javax.swing.JButton btnPrev; + private javax.swing.JButton btnStop; + private javax.swing.JLabel jLabel1; + private javax.swing.JScrollPane jScrollPane2; + private javax.swing.JList listMusic; + private javax.swing.JTextField txFieldPlaying; + // End of variables declaration//GEN-END:variables + +public Object getBtnAdd(){ + return btnAdd; + } + + public Object getBtnDelete(){ + return btnDelete; + } + + public Object getBtnNext(){ + return btnNext; + } + + public Object getBtnPlay(){ + return btnPlay; + } + + public Object getBtnPrev(){ + return btnPrev; + } + + public Object getBtnStop(){ + return btnStop; + } + + public void setListMusic(String [] musicList){ + listMusic.setListData(musicList); + } + + public void setTxFieldPlaying(String filename){ + txFieldPlaying.setText(filename); + } + + public int getSelectedMusic(){ + if (listMusic.getSelectedIndex() == -1) { + throw new IllegalStateException("Please select any music"); + } + return listMusic.getSelectedIndex(); + } + + public void addListener(ActionListener e){ + btnAdd.addActionListener (e); + btnDelete.addActionListener (e); + btnNext.addActionListener (e); + btnPlay.addActionListener (e); + btnPrev.addActionListener (e); + btnStop.addActionListener(e); + } +} From ee75bfb2d0a729beb0018d1b00507977975e3e7c Mon Sep 17 00:00:00 2001 From: Gunturf Date: Wed, 17 May 2017 18:53:10 +0700 Subject: [PATCH 2/2] Guntur Fatmawan_1301154343_If 39-07 Task_5 Selesai --- Task5/build.xml => build.xml | 0 build/classes/.netbeans_automatic_build | 0 build/classes/.netbeans_update_resources | 0 .../Application$ThreadPlayer.class | Bin 0 -> 1477 bytes build/classes/Aplicationn/Application.class | Bin 0 -> 1930 bytes build/classes/Controller/Controller.class | Bin 0 -> 2791 bytes build/classes/Driver/Driver.class | Bin 0 -> 459 bytes build/classes/PlayerGui/PlayerGui$1.class | Bin 0 -> 758 bytes build/classes/PlayerGui/PlayerGui$2.class | Bin 0 -> 1025 bytes build/classes/PlayerGui/PlayerGui.class | Bin 0 -> 6268 bytes .../classes}/PlayerGui/PlayerGui.form | 0 Task5/manifest.mf => manifest.mf | 0 {Task5/nbproject => nbproject}/build-impl.xml | 0 .../genfiles.properties | 0 nbproject/private/private.properties | 2 + nbproject/private/private.xml | 12 ++ .../project.properties | 0 {Task5/nbproject => nbproject}/project.xml | 0 .../src => src}/Aplicationn/Application.java | 2 +- {Task5/src => src}/Controller/Controller.java | 2 +- {Task5/src => src}/Driver/Driver.java | 0 src/PlayerGui/PlayerGui.form | 154 ++++++++++++++++++ {Task5/src => src}/PlayerGui/PlayerGui.java | 0 23 files changed, 170 insertions(+), 2 deletions(-) rename Task5/build.xml => build.xml (100%) create mode 100644 build/classes/.netbeans_automatic_build create mode 100644 build/classes/.netbeans_update_resources create mode 100644 build/classes/Aplicationn/Application$ThreadPlayer.class create mode 100644 build/classes/Aplicationn/Application.class create mode 100644 build/classes/Controller/Controller.class create mode 100644 build/classes/Driver/Driver.class create mode 100644 build/classes/PlayerGui/PlayerGui$1.class create mode 100644 build/classes/PlayerGui/PlayerGui$2.class create mode 100644 build/classes/PlayerGui/PlayerGui.class rename {Task5/src => build/classes}/PlayerGui/PlayerGui.form (100%) rename Task5/manifest.mf => manifest.mf (100%) rename {Task5/nbproject => nbproject}/build-impl.xml (100%) rename {Task5/nbproject => nbproject}/genfiles.properties (100%) create mode 100644 nbproject/private/private.properties create mode 100644 nbproject/private/private.xml rename {Task5/nbproject => nbproject}/project.properties (100%) rename {Task5/nbproject => nbproject}/project.xml (100%) rename {Task5/src => src}/Aplicationn/Application.java (99%) rename {Task5/src => src}/Controller/Controller.java (99%) rename {Task5/src => src}/Driver/Driver.java (100%) create mode 100644 src/PlayerGui/PlayerGui.form rename {Task5/src => src}/PlayerGui/PlayerGui.java (100%) diff --git a/Task5/build.xml b/build.xml similarity index 100% rename from Task5/build.xml rename to build.xml diff --git a/build/classes/.netbeans_automatic_build b/build/classes/.netbeans_automatic_build new file mode 100644 index 0000000..e69de29 diff --git a/build/classes/.netbeans_update_resources b/build/classes/.netbeans_update_resources new file mode 100644 index 0000000..e69de29 diff --git a/build/classes/Aplicationn/Application$ThreadPlayer.class b/build/classes/Aplicationn/Application$ThreadPlayer.class new file mode 100644 index 0000000000000000000000000000000000000000..0d7e65a4ba7e8dd8fa7387ca34c4243d402b7cca GIT binary patch literal 1477 zcmZ`(Yg5xu5Iwi8q=X1q1VmJ#Ae5rS2fh{MZ6Q1?>I@%48zC5yOh^^|Lw;sP=#0$h zcmIO_#qr#Ozz&@bN8OzJ;~4C-@XHwz;Y|PaZ5!HZcFQqg1ahGm{4#}MGNjr z=L2ayRPac_V+BuCXtjN zV!v!_SEB9xqQJlj#EKuy`(>{*w_mga*%;!oC)!!Ei!3lS7C8V@_PZW>c0IC+@0YEh zR-U@R2UUUPB))YFNOC zz~%Z(4Mnl)I3DXK@4EJu<&t@1|EuLMmpX+_mmQad3!IVV=o(%kFVLoYex%1eqiYdM z99KQf=IvrVbA`fcLI1cd^GTUf$GQ}`uD}!+Y9h}QQ)gTMmr|93KzDUyC%zAG9 zJ6tb?Shn(h>fQu7?U|K&4W1a0C}j)KY)33k(o|=n0$dee}0SP zv&7gMQ6>hlOwy^2?SWHmYR(|9tAQ8FInlfxLT1!m3R1}$>0)q0b587F8T1l(c3ZW>V)wF^B2&GnMoG!@Lwud;}A$#L!V*6x<=ZCG11Mn+2YidEaRJV*9XQ1f>jO1#*Q zorGtsYIRKUqyW;G54yY?^aqt@{3J(^jrx4epd zhgk|kU9QiG5(Aeot#H0a%MHAPiw4%P&b*VV4cx~A=JgP2U=mXX9^#RKG9D?+{GYZ< zAsYtX!}|svW7^=A;IfG)20p@dg$sQ^j@5R5>$zQ_^f>!@qLtyNLiRfa-LD68tzeqn z^&cMT5hEmfERe^D7&~0WV^j7k7;R3UOX# z_5cd+au>q{e>5m~r^kFI_>B$ZdYQWwW+*;~atBbkmxw(*KztwCA3??kTvI#&T!2R0 zG?8bxGr}CqBEy}+6__2o7#V?N?oVh}+ZcFqgd~46U^NNWBPiqH$q0ox$RbA^g{!z0 z;mz}m)Rz{#_}>_8Lw|)czcUnrls6cBp6V(q-6`us%=LmHRHBXKD-525x!e;bkLwZ4 z3Q0TaCfYcAO5H5gW%{VQLH|V^hcm+SF%Y<$$xZAdArc8Hg{`p_#?#!j1DxAOiXT#K zq>r2&XCCPJ0392qXOnbnmY#{LmqNsjs~Lp6!<>(gc~<=7MTsi7%jcoLsegmEk!nb& z;(@PVrXo2J*CerTy`AgXF|KM4u6c4TkgGth+i&BF;WL&N!#r<+Oez1p InKlmf25kOn4gdfE literal 0 HcmV?d00001 diff --git a/build/classes/Controller/Controller.class b/build/classes/Controller/Controller.class new file mode 100644 index 0000000000000000000000000000000000000000..05af600bc6f072c6fb992c6f3ad95f3fbf890765 GIT binary patch literal 2791 zcma)8SyL2O6#nio&@i+?KvqQ&w;2#8Ml?|rMHU5zfrueN&C<*?(Av{I&h!9kR+E^- zBxW&-OLmhOAF0yOij`EJ^N_0K59BRBAkV2(&bi$%17cMkxP9)q-#O>IXSu_#|Ni(h zfHvF=pcPRCg8}#uEx~3CDR?}9LU(hRrD0x|xGqo@F)TfrNsQ^KBifirnu>@W)65YqW$@lp`khH5 zEl?BbvMncNo2H%$=S1>erp1`kke(X1QwcpTuqGHep-pLFZQ2RzQ@Z7ZJ0+xt<#tIS zsX3DzP~uF@ng|a&DZ`o|f4=dUK)pPf38$w?8Sd{jOucK;w$plw?=x|;gjaP zOiWMm6`7p25Oe?ah+f*xq+&9kx$6y%ouDY>VcD>w#ZC@rNiV;FVToqKl*?RZx3H~> zZD^z9KcMs~!gyGqa=zHPva8sNM^rqI7gW56msGrrS5%zCs|sFI@jA|{c!QTW@s>a> z$66}c0^$6l|B+!z@W9ZvM!pVp&GK9V-1<@vCX(CuS{GEjjdxVMi;F7W!}|(8Q1Kxy zsrU#VtN4V;eTvH}uHdSQYrOpoZ7M$J?H7#ul5t<*yZ}^u&46zhaGj-ZIc@baI(OlH zrBv}9E-Cn4#SQ#GlatGPUUM(t?-o#?Vcuze?IT8-8jX80kk*|MBW=iu@&}J{yO(P5 zcn;C@fbp0^$O%y=bY~!wHe#$Lg2B+SrG`bNXpE3hf$HEAC}xmLMLugekW?{><#wUK zieM-&&V1K0WWQr|#%WB7^ivtlr0Q0A7m@SpK|@Ccg86!Ht{=c_8S&>{p+7m%n_Sbm zUR>O8E=(rqq4cCZJ($$3ZbLKe2^x~Tw07Bvq;1L9hDN-M@8?Z92cx>q-O{k-Q$cg7 z%DQ@c*QRqUZJQZKACiyN!pzJ+SH)CYFZ&Df;Q=`LTuVw`H&Jjncpe?kk{)K_S(?%l z_LT1F{J}mp4!FiV;`DT<9h-g&{7JcEzfpTyPCwP9oN{?&rq|HTIIHO4oVOm9W}d64 zK0_Vlx8!HeeM+BVzw*Pn0ebkf31VBrd6}z6|Db#bhct^$%DDm_ZmtNSC5v!>M}?o`%yozK8J+)eLjdO2v8!h7U3AcYJ_X3sk_%RJdzYx|?J%OQpMu-S`E2@EbbtJNDvF?89H^ z#NX(mrs@_7dPFS_h>bWXTG1!kF+gk%iM@!3ene$Uj3YoXYsk|c6cM8+`Pxf-+bHfn z^5rLH8?YZ;#QGenY1c)kv(#8pB44HGK`-g3dA!DA=>QJO`}fkV`l3q zY$8O#J)R;WBpS+)*Y+F9fq6~(twZ`G+Lp6el9Sg;A>n*FPh(EGC^ z!L1j&4_9$i-~=XLNIwI77}#uEocZjDee-M&+Lh%tTdM?JI2?B?0y-Q4ZS-)!h;F`S oF+*eTFdp}41hs(v2VlswQ7Ph8MD*b@-eQ464A}CWI5#l*2I?1E6#xJL literal 0 HcmV?d00001 diff --git a/build/classes/PlayerGui/PlayerGui$1.class b/build/classes/PlayerGui/PlayerGui$1.class new file mode 100644 index 0000000000000000000000000000000000000000..a64c4fa043e3385a6b65c3c7ec3389c6b888909f GIT binary patch literal 758 zcmaJci57ow@gN=G=2Xe*gLT3&1g+_-NpMfF(Q#u!$`X+a4Zz*b%rTW$)!EWn?wBiA;ww z)6Sm<8!n|l_{tcS4N{rsita`gd;5qAnldT0HD@aOV6%xD3+!~_OF5H~{8U70rc4o? zl#o+r_ne}-niT?D*TDpWcXpa3>Vu9O|?yin|gz*+?rrMU?V?Bt_0tdG5_ zcU+BuOcIrIc!wO{arJbrYry^xyWEQD(f`}EY&bdzJTz>Z}#K8~Luc(6Z`Ev^B|3~L9=zOf< a4r%IGCwYzOHh4F<%=geN({T%V^ZN^`1gjnZ literal 0 HcmV?d00001 diff --git a/build/classes/PlayerGui/PlayerGui$2.class b/build/classes/PlayerGui/PlayerGui$2.class new file mode 100644 index 0000000000000000000000000000000000000000..ca69c50bf602edb20fc346c0a787640129d2877a GIT binary patch literal 1025 zcmZ`%+iuf95Ix&Ev6GrMHIx=gp+JCKph<7Mw5n8v7DY+{$*5AqlasDeSB{Nrhub&t z01^cWiGBbdg*fY6Kp|LK&t+%M%$(VuzrJ4p*uvusX7C^j69pYb10@4x0}l;6GO(uZ zDp~%jI@Wb;2BjrRnW3KJuW#{ya{IFSN#4cC{?dfk=`Upg(19;*?w9q-r)U1blPnkp$^)_q@w zHP4A6Npo=$dVYf)=p7l`?gzq67m9Tz(mwEHSNidO%*G4#;-txhD#F zap1STAR^$Aj8B6T9h)Ziw{2n$ITQ2P7RZfngnZXy*9DqLaTvpH0@h6<4`Vb;Vl zZg9#``9IssGkHZ-`0rqR6%+C}jM{lE=)Mkovdry}`D3i|VVQh{Q#`B;u9wTq>VKl)hoAWcw=X39$2&9tT4P2Do=b7VdRJ%Kj zRwL;udwJv2So+~#ZRn#mbgbYeL~frzw+2Af0Z_WM{1w@8oZ5soG;*q%y^TAGyo)@g QhI_b=MQT|h&rtIF4cN`es{jB1 literal 0 HcmV?d00001 diff --git a/build/classes/PlayerGui/PlayerGui.class b/build/classes/PlayerGui/PlayerGui.class new file mode 100644 index 0000000000000000000000000000000000000000..a3c696f3043846d85620c8027aee37e61c86af04 GIT binary patch literal 6268 zcmbVQ3wRt=75?ue&2F}nWV22BE~HRsnn2Um0@{?)G)>!-O&glf7thINl5V@14YRXJ z3L>Zoz7a)0MX8Di2m+OCgvd)#6a`Tf#Rn>iqWD4-6}9l6nMwB14O*M8_ndq0dEax+ zy|a%Vy7ztnE7gJ!w%`LHY{gZAeK3Fzg;0vC$~n0@fDeZd@Fv#;aBT=7Z*rY%e?*3l z%J4B6u9xBC0em8ah(~op00%;-^(LPT;8UXE(<1)H06r7MO(D#~XGO!!LEIwn)*wD7 zN(gTY;`SguAH*F2+!?}R+$9?agZM%KcZbj@^ID9GvP=MDBKnIVG~u2Q?!|aHzJ&W^ zdcO=0$n?Pw9>SLc_=>=XL-;DbCfFk~d|ifb$l9ZVeN&jeCDX^s@i@LMYfp%b@5tJB zW%o%@_&qV<`{K~8f;|<$4}$n%2&d!e0Dcs}j}`QG%QEfOgpo>_DTT5g$7<>ARj7^b zHHM6lrqpoU>TlY-F6}r;t68C(1nbR&>6i)u;#7v{bimrISWjJY@ z7A`)VVzs-}lrZR4mt)hr<~8K1bVfGB%|x$w!8L{1`K;aa(jKp@sj?3I%EOqw88R*)mXfo}M>3Gv5CU%JE z*5tro(lRYaPK0F1G-I3}m5p{XJs5Sj$aQSe?q6z|PLF9=sij@Xv>h{}=8&0av8<$H zIPs)KQS)N8Az<8J(uxm$V0D znu)2UHzuB&QH0T`XxCAZtdA?#^gM8k7Oe0 zLf+KNJAdM(-o(VsK7ZmRpq?@v$qqknX4apTqsUJJF}Zv|5=$tVTt#RUswt_vAX94n zP~@hRNDKDG6Q*ShxS1f;l$Uf0VS3WVQi?fduWuO>s$HR?%Q0g6I*dU-Wu_awy<(Kf zN>w;!ipWn;xWQLcdUWvy!J9#T{_N(!OF?ob=!oFo!G@=$=mVTl8!U5O-Gju z+hsUYhHe>lV4K3MJf3Vj(Xkt6@l5l!B|JLL#yJY}ayNFwt={BtD+|dnSeQC~f}iSm z20!C@30;$<_=cp#)T!!@516UCE#`3Dw&Z|eiQhlh@e4ewFnvpMxK3ijqSNt9T*^Xm z8*bS|f@`Z+v!{3|t*v2~shtdEwo@!xE<%5$<2hVGYA?-;60XqkYy3vX^Z0E+Byw7a zj^E)0k@))n{-EQJ_)`FX*6|m-q~ou6S;yb;PaUt|r2zh= zv(+43&BbL*<*c&yM8fPh5-btNY#WK0gVLDjS!cpDQf6JsEvP!f+F$1uvpB^V&nObZ z!Zh1pyR|x-CBEM5GtvpCHIYo2TL(?s?VyZveY+I)bW*hS#vQNAm)7r=#aTtVK)XvG zAi0+qk(|<%6}MDnTk@Y*PVov9>D6ojUW1(|U-lO=cJS&+D9rT)Ph8hRmQh*`9*DNJtZ(14k+-1Rt0sa_ zl$D0hh}kA{r_-8f0VCDv^XxIl0_? zgffqt%I>@v(p9lqUOfRdkB=4q-1hx1=QO2 z@U)^KI}!<-ruO(q-P!#Ai#pu12rGP3(vDv!ML&_>{$r(BGW*7|;@1|9$?K+3{=o#) ze1(SGJo4H~m$N@%E}G0t-T^VwYao$gi-B!z(U$JE^$I8CWz6df^V6c!Hv3H5HoeN) zl^@yvBH_qVD7dbrtBp0^rf_P}$W5J1`C;P|RIUcocH;a_@e8VSkZ(`#j+1L-z2WdZ zmj7b*pXSo6bKkJ-R}aRL_M6dZ?jI36ARjcOBx>{gfao9jxPt*+rG)(tpU-GuYh9XMZQ_~CaCdG14xdXS%p zkDymQO8hbEcmk$+lKP&a?x)eOp1~gVEaK`p>{TyfpLzueO<_Q*gr&_xQag(H5)5j~ zaDjFTY;6rvS{ocKinP{+A#FE?wR5=FhY>A~xRyY_mc&I`3U796eI_fL_3YKU(v*$8 z*vI-$Fv8MA2Ke7P3o3;qDfwy3xwMp%+|B@~$zwqow}4BtVmbF(2+3gc7^Dk1NOKes zP3|0+CdYoKD^EI-C+6y$PBhIIqcBvIxuTHyx}wa(MVZ5e%-0uX9x2LPRmgmxDD(cJ z%$0@AHx^~SuqbnNA@j{enJ?lod(m#;@$snHq}j{Z0ybq2POc%~HunG9T_J8xpnUT1 z%5gE?;vUu|Jl?~_l~G)Kp}0FK?yf1sy%leB#l0Pu`Qmn>gcz_utjl1tb^sOQIDJ24R=>lgRkf6QIj-=vT|vl zd|2tjYJpkjj^c0QVAlxpH|Q|#!))BoPV@k~&4cVN59K(#d@_E^@lL!8DjdYS@gCol zRlX@@4UJ=m7g1%7oHD%Ey@#bT-scvP#!e + + + + + file:/D:/Telkom%20University/Semester%204/PBO/task/Task_5/Task5/src/Driver/Driver.java + file:/D:/Telkom%20University/Semester%204/PBO/task/Task_5/Task5/src/PlayerGui/PlayerGui.java + file:/D:/Telkom%20University/Semester%204/PBO/task/Task_5/Task5/src/Controller/Controller.java + file:/D:/Telkom%20University/Semester%204/PBO/task/Task_5/Task5/src/Aplicationn/Application.java + + + diff --git a/Task5/nbproject/project.properties b/nbproject/project.properties similarity index 100% rename from Task5/nbproject/project.properties rename to nbproject/project.properties diff --git a/Task5/nbproject/project.xml b/nbproject/project.xml similarity index 100% rename from Task5/nbproject/project.xml rename to nbproject/project.xml diff --git a/Task5/src/Aplicationn/Application.java b/src/Aplicationn/Application.java similarity index 99% rename from Task5/src/Aplicationn/Application.java rename to src/Aplicationn/Application.java index 6498b73..3e08389 100644 --- a/Task5/src/Aplicationn/Application.java +++ b/src/Aplicationn/Application.java @@ -79,6 +79,6 @@ public void run (){ throw new IllegalStateException("ERROR while playing file "); } } - } + } } diff --git a/Task5/src/Controller/Controller.java b/src/Controller/Controller.java similarity index 99% rename from Task5/src/Controller/Controller.java rename to src/Controller/Controller.java index 1144aec..68040f6 100644 --- a/Task5/src/Controller/Controller.java +++ b/src/Controller/Controller.java @@ -74,6 +74,6 @@ else if (source.equals(view.getBtnPrev())){ } } catch (HeadlessException e){ JOptionPane.showMessageDialog(view, e.getMessage()); + } } } -} diff --git a/Task5/src/Driver/Driver.java b/src/Driver/Driver.java similarity index 100% rename from Task5/src/Driver/Driver.java rename to src/Driver/Driver.java diff --git a/src/PlayerGui/PlayerGui.form b/src/PlayerGui/PlayerGui.form new file mode 100644 index 0000000..878e0fc --- /dev/null +++ b/src/PlayerGui/PlayerGui.form @@ -0,0 +1,154 @@ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Task5/src/PlayerGui/PlayerGui.java b/src/PlayerGui/PlayerGui.java similarity index 100% rename from Task5/src/PlayerGui/PlayerGui.java rename to src/PlayerGui/PlayerGui.java