diff --git a/bin/.gitignore b/bin/.gitignore new file mode 100644 index 0000000..f472201 --- /dev/null +++ b/bin/.gitignore @@ -0,0 +1,16 @@ +/GUI$1.class +/GUI$2.class +/GUI$3.class +/GUI$4.class +/GUI$5.class +/GUI$6.class +/GUI$7.class +/GUI$8.class +/GUI$SoundJLayer.class +/GUI.class +/Main.class +/SoundJLayer.class +/jaggob$1.class +/jaggob$2.class +/jaggob.class +/GUI$9.class diff --git a/bin/GUI$1.class b/bin/GUI$1.class index 8449168..dc6e528 100644 Binary files a/bin/GUI$1.class and b/bin/GUI$1.class differ diff --git a/bin/GUI$2.class b/bin/GUI$2.class index 259f18f..bcc951c 100644 Binary files a/bin/GUI$2.class and b/bin/GUI$2.class differ diff --git a/bin/GUI$3.class b/bin/GUI$3.class index beee1d2..a4ce4b7 100644 Binary files a/bin/GUI$3.class and b/bin/GUI$3.class differ diff --git a/bin/GUI$4.class b/bin/GUI$4.class index 78acebc..8cea1e4 100644 Binary files a/bin/GUI$4.class and b/bin/GUI$4.class differ diff --git a/bin/GUI$5.class b/bin/GUI$5.class index 5bb5a56..96a7558 100644 Binary files a/bin/GUI$5.class and b/bin/GUI$5.class differ diff --git a/bin/GUI$6.class b/bin/GUI$6.class index ed7cb26..2c46dd7 100644 Binary files a/bin/GUI$6.class and b/bin/GUI$6.class differ diff --git a/bin/GUI$7.class b/bin/GUI$7.class index 2cdc0e6..9b7e247 100644 Binary files a/bin/GUI$7.class and b/bin/GUI$7.class differ diff --git a/bin/GUI$8.class b/bin/GUI$8.class index 41dd1a6..d3f9a4f 100644 Binary files a/bin/GUI$8.class and b/bin/GUI$8.class differ diff --git a/bin/GUI$SoundJLayer.class b/bin/GUI$SoundJLayer.class index d07640c..02e8cee 100644 Binary files a/bin/GUI$SoundJLayer.class and b/bin/GUI$SoundJLayer.class differ diff --git a/bin/GUI.class b/bin/GUI.class index 2517096..04cb7d8 100644 Binary files a/bin/GUI.class and b/bin/GUI.class differ diff --git a/src/GUI.java b/src/GUI.java index e2d33e7..f7ce799 100644 --- a/src/GUI.java +++ b/src/GUI.java @@ -39,6 +39,7 @@ import java.util.ArrayList; import java.util.Properties; import javax.swing.JButton; +import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; @@ -46,6 +47,8 @@ import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.SwingConstants; import javax.swing.border.EmptyBorder; +import javax.swing.filechooser.FileFilter; +import javax.swing.filechooser.FileNameExtensionFilter; import javazoom.jl.player.advanced.AdvancedPlayer; import javazoom.jl.player.advanced.PlaybackEvent; @@ -60,6 +63,14 @@ public class GUI extends JFrame { private int anzahlBtn = 0; private int zY = 0; // zähler für posX + //stuff Calvin//////////////////////////////////////////////// + + //Init + private JButton btn_browse; + + + ////////////////////////////////////////////////////////////// + ArrayList myButton = new ArrayList(); ArrayList eventPath = new ArrayList(); @@ -153,11 +164,42 @@ public class GUI extends JFrame { btnNewButton.setBounds(851, 76, 249, 23); contentPane.add(btnNewButton); + //breite verkleinert textField = new JTextField(); - textField.setBounds(851, 14, 249, 20); + textField.setBounds(851, 14, 210, 20); contentPane.add(textField); textField.setColumns(10); + //browse Button hinzufügen + + btn_browse = new JButton("..."); + btn_browse.setBounds(1065, 14, 20, 20); + btn_browse.addActionListener(new ActionListener() { + + @Override + public void actionPerformed(ActionEvent arg0) { + //erstelle öffnen-Dialog + JFileChooser fileChooser = new JFileChooser(); + + //erstelle Filter für "Mp3" und "WAV" + fileChooser.setFileFilter(new FileNameExtensionFilter("mp3", "mp3")); + fileChooser.addChoosableFileFilter(new FileNameExtensionFilter("wav", "wav")); + + //Nur einzelne Dateien sollen auswählbar sein + fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY); + + + //öffnen Dialog anzeigen + fileChooser.showOpenDialog(null); + + //Pfad der ausgewählten Datei in Textfeld kopieren + String path = fileChooser.getSelectedFile().getAbsolutePath(); + textField.setText(path); + } + }); + + contentPane.add(btn_browse); + JLabel lblNewLabel = new JLabel("Dateiname"); lblNewLabel.setForeground(Color.WHITE); lblNewLabel.setFont(new Font("Arial", Font.PLAIN, 14)); @@ -206,7 +248,7 @@ public class GUI extends JFrame { JButton button = new JButton(); myButton.add(button); button.setText(setName()); //setzte den Button Text auf Wert von setName() - contentPane.add(button); //fügt Butoon zur cPane hinzu + contentPane.add(button); //fügt Button zur cPane hinzu button.setFont(new Font("Arial", Font.PLAIN, 18)); //Schriftart und Größe button.setBounds(getPosX(), getPosY(), 200, 50); //position (x, y(j+160), width, height) button.setVisible(true); @@ -338,10 +380,34 @@ public class GUI extends JFrame { public SoundJLayer(String filePath) { this.filePath = filePath; - } + } public void play() { + //versuche von Pfad zu laden (unsauber, funktioniert aber) + try{ + + String urlAsString = null; + File temp = new File(filePath); + urlAsString = "file:///"+temp.getAbsolutePath(); + //urlAsString.replaceAll(" ", "%20"); + System.out.println(urlAsString); + + this.player = new AdvancedPlayer( + new java.net.URL(urlAsString).openStream(), + javazoom.jl.player.FactoryRegistry.systemRegistry().createAudioDevice() + ); + + this.player.setPlayBackListener(this); + this.playerThread = new Thread(this, "AudioPlayerThread"); + this.playerThread.start(); + + }catch(Exception e){ + + //Debug Nachricht, falls lesen aus Pfad nicht funktioniert + System.out.println("Failed to load from path: checking home directory."); + + try { String urlAsString = @@ -365,6 +431,8 @@ public class GUI extends JFrame { { ex.printStackTrace(); } + + } } // PlaybackListener members