Guest User

Untitled

a guest
May 19th, 2016
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.03 KB | None | 0 0
  1. package odtwarzacz;
  2.  
  3. import java.awt.BorderLayout;
  4. import java.awt.Color;
  5. import java.awt.Dimension;
  6. import java.awt.FlowLayout;
  7. import java.net.URL;
  8. import javax.swing.BorderFactory;
  9. import javax.swing.BoxLayout;
  10. import javax.swing.DefaultListModel;
  11. import javax.swing.Icon;
  12. import javax.swing.ImageIcon;
  13. import javax.swing.JButton;
  14. import javax.swing.JFrame;
  15. import javax.swing.JList;
  16. import javax.swing.JPanel;
  17. import javax.swing.JScrollBar;
  18. import javax.swing.JScrollPane;
  19. import javax.swing.filechooser.FileNameExtensionFilter;
  20.  
  21. import java.awt.event.ActionEvent;
  22. import java.awt.event.ActionListener;
  23. import java.util.ArrayList;
  24. import javax.swing.JFileChooser;
  25.  
  26. import javax.sound.sampled.AudioInputStream;
  27.    import javax.sound.sampled.AudioSystem;
  28.     import javax.sound.sampled.Clip;
  29.     import java.io.*;
  30. import java.net.URL;
  31. import javax.sound.sampled.*;
  32. import sun.audio.*;
  33.  
  34. public class Przyciski {
  35.    
  36.     ArrayList<String> playlist = new ArrayList<String>();
  37.     DefaultListModel<String> songList = new DefaultListModel<String>();
  38.     JList<String> jSongList = new JList<String>(songList);
  39.  
  40.     public void addSong(String songPath) {
  41.         playlist.add(songPath);
  42.     }
  43.    
  44.     public void GUI() {
  45.         Przyciski odtwarzacz = new Przyciski();
  46.         JFrame main = new JFrame();
  47.         main.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  48.        
  49.          JPanel mainPanel = new JPanel();
  50.           mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));
  51.  
  52.         JPanel paintPanel = new JPanel();
  53.             paintPanel.setBackground(Color.red);
  54.             //buttons.setMinimumSize(new Dimension(400, 100));
  55.             paintPanel.setPreferredSize(new Dimension(300, 150));
  56.             paintPanel.setMaximumSize(new Dimension(300, 150));
  57.        
  58.         JPanel seek = new JPanel();
  59.               seek.setBackground(Color.white);
  60.               seek.setPreferredSize(new Dimension(300, 30));
  61.               seek.setMaximumSize(new Dimension(300, 30));
  62.              
  63.         JPanel whoPlay = new JPanel();
  64.               whoPlay.setBackground(Color.orange);
  65.               whoPlay.setPreferredSize(new Dimension(300, 50));
  66.               whoPlay.setMaximumSize(new Dimension(300, 50));  
  67.  
  68.        JPanel playlista = new JPanel(new BorderLayout());
  69.                 playlista.setBackground(Color.blue);
  70.                 //buttons.setMinimumSize(new Dimension(400, 100));
  71.                 playlista.setPreferredSize(new Dimension(300, 210));
  72.                 playlista.setMaximumSize(new Dimension(300, 210));
  73.                 //playlista.setBorder(BorderFactory.createLineBorder(Color.yellow));
  74.                
  75.                 JPanel b = new JPanel();
  76.                 b.setBorder(BorderFactory.createLineBorder(Color.pink));
  77.                 playlista.add(b, BorderLayout.CENTER);
  78.                
  79.                 int line1 = 80;
  80.                 int h_list = 100;
  81.                 JScrollPane listScroller = new JScrollPane(jSongList);
  82.                 listScroller.setPreferredSize(new Dimension(300-10,h_list));
  83.                 listScroller.setBounds(0, line1+50, 300-10, h_list);
  84.                 playlista.add(listScroller);
  85.                
  86.         JPanel buttons = new JPanel(new FlowLayout());
  87.                 buttons.setBackground(Color.green);
  88.                 //buttons.setMinimumSize(new Dimension(400, 100));
  89.                 buttons.setPreferredSize(new Dimension(300, 40));
  90.                 buttons.setMaximumSize(new Dimension(300, 40));
  91.                
  92.           JButton prevSong = new JButton("<<");
  93.                 Icon playIcon = new ImageIcon("C:\\Users\\Michał\\workspace\\odtwarzacz\\src\\odtwarzacz\\play.jpg");
  94.           JButton playButton = new JButton(playIcon);
  95.                 Icon pauseIcon = new ImageIcon("C:\\Users\\Michał\\workspace\\odtwarzacz\\src\\odtwarzacz\\pause.jpg");
  96.           JButton pauseButton = new JButton(pauseIcon);
  97.                 //Icon stopIcon = new ImageIcon("stop.jpg");
  98.                 //JButton stopButton = new JButton(stopIcon);
  99.           JButton nextSong = new JButton(">>");
  100.                 Icon openIcon = new ImageIcon("C:\\Users\\Michał\\workspace\\odtwarzacz\\src\\odtwarzacz\\open.jpg");
  101.          JButton openButton = new JButton(openIcon);
  102.    
  103.             pauseButton.setEnabled(false);
  104.             buttons.add(prevSong);
  105.             buttons.add(playButton);
  106.             buttons.add(pauseButton);
  107.             buttons.add(nextSong);
  108.             //buttons.add(stopButton);
  109.             buttons.add(openButton);
  110.          
  111.             mainPanel.add(paintPanel);
  112.             mainPanel.add(seek);
  113.             mainPanel.add(whoPlay);    
  114.             mainPanel.add(playlista);
  115.             mainPanel.add(buttons);
  116.        
  117.         main.add(mainPanel);  
  118.         main.setSize(300,450);
  119.         main.setResizable(false);
  120.         main.setVisible(true);
  121.    
  122.     playButton.addActionListener(new ActionListener(){
  123.         public void actionPerformed(ActionEvent ae)  {
  124.            
  125.             try {
  126.                 String piosenka = playlist.get(0);
  127.                 System.out.println(piosenka);
  128.  
  129.                 System.out.println("AAAAAAAAAAAAAAAAAAAAAAAAAA");
  130.                 URL url = this.getClass().getClassLoader().getResource(piosenka);              
  131.                 System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBBB");
  132.                 AudioInputStream audioIn = AudioSystem.getAudioInputStream(url);
  133.                 // Get a sound clip resource.
  134.                 System.out.println("CCCCCCCCCCCCCCCCCCCCCCCCCCCCCC");
  135.                 Clip clip = AudioSystem.getClip();
  136.                 // Open audio clip and load samples from the audio input stream.
  137.                
  138.                 clip.open(audioIn);
  139.                 clip.start();
  140.                
  141.                 } catch (UnsupportedAudioFileException e) {
  142.                     e.printStackTrace();
  143.                 } catch (IOException e) {
  144.                     e.printStackTrace();
  145.                 } catch (LineUnavailableException e) {
  146.                     e.printStackTrace();
  147.                 }
  148.         }
  149.       });
  150.    
  151.     openButton.addActionListener(new ActionListener() {
  152.         public void actionPerformed(ActionEvent ae) {
  153.           JFileChooser fileChooser = new JFileChooser();
  154.           fileChooser.setAcceptAllFileFilterUsed(false);
  155.           fileChooser.setMultiSelectionEnabled(true);
  156.           FileNameExtensionFilter filter = new FileNameExtensionFilter("Piosenki MP3", "wav");
  157.           fileChooser.addChoosableFileFilter(filter);
  158.           fileChooser.showOpenDialog(null);
  159.             File[] selectedFiles = fileChooser.getSelectedFiles();
  160.             for (File f : selectedFiles) {
  161.                 System.out.println(f);
  162.                 odtwarzacz.addSong(f.getAbsolutePath());
  163.                 playlist.add(f.getName());
  164.                 System.out.println("Dodana: " + f.getName());
  165.                 System.out.println("Rozmiar = " + playlist.size());
  166.             }
  167.         }
  168.       });
  169.     }
  170. }
Advertisement
Add Comment
Please, Sign In to add comment