Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 9th, 2012  |  syntax: None  |  size: 10.91 KB  |  hits: 37  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. import java.io.File;
  2. import java.io.IOException;
  3.  
  4. import javax.sound.sampled.LineUnavailableException;
  5.  
  6. import javazoom.jl.decoder.JavaLayerException;
  7.  
  8. import org.eclipse.swt.widgets.Display;
  9. import org.eclipse.swt.widgets.Shell;
  10. import org.eclipse.swt.widgets.TabFolder;
  11. import org.eclipse.swt.SWT;
  12. import org.eclipse.swt.widgets.Composite;
  13. import org.eclipse.swt.widgets.ToolBar;
  14. import org.eclipse.swt.widgets.Button;
  15. import org.eclipse.swt.widgets.Combo;
  16. import org.eclipse.swt.widgets.Text;
  17. import org.eclipse.swt.widgets.List;
  18. import org.eclipse.swt.widgets.Label;
  19. import org.eclipse.swt.widgets.Slider;
  20. import org.eclipse.swt.widgets.Menu;
  21. import org.eclipse.swt.events.SelectionAdapter;
  22. import org.eclipse.swt.events.SelectionEvent;
  23. import org.eclipse.swt.events.KeyAdapter;
  24. import org.eclipse.swt.events.KeyEvent;
  25. import org.eclipse.swt.graphics.GC;
  26. import org.eclipse.swt.graphics.Image;
  27. import org.eclipse.swt.graphics.Rectangle;
  28. import org.eclipse.swt.layout.FillLayout;
  29. import org.eclipse.swt.layout.FormAttachment;
  30. import org.eclipse.swt.layout.FormData;
  31. import org.eclipse.swt.layout.FormLayout;
  32. import org.eclipse.swt.layout.GridLayout;
  33. import org.eclipse.swt.widgets.Display;
  34. import org.eclipse.swt.widgets.Event;
  35. import org.eclipse.swt.widgets.Label;
  36. import org.eclipse.swt.widgets.Listener;
  37. import org.eclipse.swt.widgets.ProgressBar;
  38. import org.eclipse.swt.widgets.Shell;
  39. import org.eclipse.wb.swt.SWTResourceManager;
  40. import org.farng.mp3.MP3File;
  41.  
  42. import com.beaglebuddy.mp3.MP3;
  43. import com.beaglebuddy.mp3.id3v23.exception.ID3v23InvalidFrameException;
  44. import org.eclipse.swt.widgets.ExpandBar;
  45. import org.eclipse.ui.forms.widgets.FormToolkit;
  46. import org.eclipse.ui.forms.widgets.Section;
  47.  
  48. public class Main {
  49.  
  50.         protected Shell shell;
  51.         private Text txtTitle;
  52.         private Text txtArtist;
  53.         private Text txtAlbum;
  54.         private Text txtLenght;
  55.         String track = "D:/muza.mp3";
  56.         int tracknumber;
  57.         float value = (float) 0.6;
  58.         MP3Player player;
  59.         MP3 info;
  60.         boolean isPlaying = false;
  61.         boolean isPaused = false;
  62.         private final FormToolkit formToolkit = new FormToolkit(Display.getDefault());
  63.  
  64.         /**
  65.          * Launch the application.
  66.          * @param args
  67.          */
  68.         public static void main(String[] args) {
  69.                
  70.                 try {
  71.                         Main window = new Main();
  72.                         window.open();
  73.                 } catch (Exception e) {
  74.                         e.printStackTrace();
  75.                 }
  76.         }
  77.  
  78.         /**
  79.          * Open the window.
  80.          * @throws JavaLayerException
  81.          */
  82.         public void open() throws JavaLayerException {
  83.                 Display display = Display.getDefault();
  84.                 try{
  85.                         createContents();
  86.                         try{
  87.                                 shell.open();
  88.                                 shell.layout();
  89.                                 while (!shell.isDisposed()) {
  90.                                         if (!display.readAndDispatch()) {
  91.                                                 display.sleep();
  92.                                         }
  93.                                 }
  94.                         } finally {
  95.                                 if (!shell.isDisposed()) {
  96.                                         shell.dispose();
  97.                                 }
  98.                         }
  99.                 } finally {
  100.                         display.dispose();
  101.                         player.stop();
  102.                 }
  103.         }
  104.        
  105.  
  106.         /**
  107.          * Create contents of the window.
  108.          */
  109.         protected void createContents() {
  110.                 shell = new Shell();
  111.                 shell.setSize(550, 440);
  112.                 shell.setText("Idgaf MP3");
  113.                 player = new MP3Player();
  114.                 player.setInputStream(track);
  115.                
  116.                 Button btnStop = new Button(shell, SWT.NONE);
  117.                 btnStop.setImage(SWTResourceManager.getImage("C:\\Users\\ASUS\\workspace\\SWT\\icons\\stop.gif"));
  118.                 btnStop.addSelectionListener(new SelectionAdapter() {
  119.                         @Override
  120.                         public void widgetSelected(SelectionEvent e) {
  121.                                 try {
  122.                                         player.stop();
  123.                                         player = new MP3Player();
  124.                                         player.setInputStream(track);
  125.                                 } catch (JavaLayerException e1) {
  126.                                         // TODO Auto-generated catch block
  127.                                         e1.printStackTrace();
  128.                                 }
  129.                         }
  130.                 });
  131.                 btnStop.setBounds(53, 10, 30, 25);
  132.                
  133.                 Button btnStart = new Button(shell, SWT.NONE);
  134.                 btnStart.setImage(SWTResourceManager.getImage("C:\\Users\\ASUS\\workspace\\SWT\\icons\\start.gif"));
  135.                 btnStart.addSelectionListener(new SelectionAdapter() {
  136.                         @Override
  137.                         public void widgetSelected(SelectionEvent e) {
  138.                                 try{
  139.                                         if(isPlaying == false){
  140.                                                 if(isPaused == false){
  141.                                                 player.setInputStream(track);
  142.                                                 }
  143.                                                 isPlaying = true;
  144.                                                 player.play();
  145.                                                 info = new MP3(track);
  146.                                                 File file = new File(track);
  147.                                                 txtTitle.setText("N/A");
  148.                                                 txtArtist.setText("N/A");
  149.                                                 txtAlbum.setText("N/A");
  150.                                                 txtTitle.setText(info.getTitle());
  151.                                                 txtArtist.setText(info.getBand());
  152.                                                 txtAlbum.setText(info.getAlbum());
  153.                                                 txtLenght.setText(player.getDuration(file));
  154.                                         }
  155.                                         else if(isPlaying == true){
  156.                                                 player.stop();
  157.                                                 player = new MP3Player();
  158.                                                 player.setInputStream(track);
  159.                                                 player.play();
  160.                                                 info = new MP3(track);
  161.                                                 File file = new File(track);
  162.                                                 txtTitle.setText("N/A");
  163.                                                 txtArtist.setText("N/A");
  164.                                                 txtAlbum.setText("N/A");
  165.                                                 txtTitle.setText(info.getTitle());
  166.                                                 txtArtist.setText(info.getBand());
  167.                                                 txtAlbum.setText(info.getAlbum());
  168.                                                 txtLenght.setText(player.getDuration(file));
  169.                                         }
  170.                                 } catch (Exception ex){
  171.                                 }
  172.                         }
  173.                 });
  174.                 btnStart.setBounds(89, 10, 30, 25);
  175.                
  176.                 Button btnPause = new Button(shell, SWT.NONE);
  177.                 btnPause.addSelectionListener(new SelectionAdapter() {
  178.                         @Override
  179.                         public void widgetSelected(SelectionEvent e) {
  180.                                         if(isPlaying == true){
  181.                                                 isPlaying = false;
  182.                                                 isPaused = true;
  183.                                                 player.pause();
  184.                                         }
  185.                                 }
  186.                 });
  187.                 btnPause.setImage(SWTResourceManager.getImage("C:\\Users\\ASUS\\workspace\\SWT\\icons\\pause.gif"));
  188.                 btnPause.addKeyListener(new KeyAdapter() {
  189.                         @Override
  190.                         public void keyPressed(KeyEvent e) {
  191.                         }
  192.                 });
  193.                 btnPause.setBounds(125, 10, 30, 25);
  194.                
  195.                 Button btnPrev = new Button(shell, SWT.NONE);
  196.                 btnPrev.addSelectionListener(new SelectionAdapter() {
  197.                         @Override
  198.                         public void widgetSelected(SelectionEvent e) {
  199.                                 tracknumber--;
  200.                                 player.setInputStream(track);
  201.                         }
  202.                 });
  203.                 btnPrev.setImage(SWTResourceManager.getImage("C:\\Users\\ASUS\\workspace\\SWT\\icons\\back.gif"));
  204.                 btnPrev.setBounds(161, 10, 30, 25);
  205.                
  206.                 Button btnNext = new Button(shell, SWT.NONE);
  207.                 btnNext.addSelectionListener(new SelectionAdapter() {
  208.                         @Override
  209.                         public void widgetSelected(SelectionEvent e) {
  210.                                 tracknumber++;
  211.                                 player.setInputStream(track);
  212.                         }
  213.                 });
  214.                 btnNext.setImage(SWTResourceManager.getImage("C:\\Users\\ASUS\\workspace\\SWT\\icons\\next.gif"));
  215.                 btnNext.setBounds(197, 10, 30, 25);
  216.                
  217.                 final List list = new List(shell, SWT.BORDER);
  218.                 list.setBounds(315, 116, 168, 246);
  219.                 list.add("D:/muza.mp3");
  220.                 list.add("D:/muzaa.mp3");
  221.                
  222.                
  223.                 list.addListener(SWT.Selection, new Listener() {
  224.                       public void handleEvent(Event e) {
  225.                         String string = "";
  226.                         int selection[] = list.getSelectionIndices();
  227.                         for (int i = 0; i < selection.length; i++) {
  228.                                 tracknumber = selection[i];
  229.                         }
  230.                        
  231.                             if(tracknumber == 0) track = "D:/muza.mp3";
  232.                             else if(tracknumber == 1) track = "D:/muzaa.mp3";
  233.                             isPlaying = true;
  234.        
  235.                         //System.out.println("Selection = " + tracknumber +", track = " + track);
  236.                       }
  237.                     });
  238.                
  239.                 Section sctnTrack= formToolkit.createSection(shell, Section.SHORT_TITLE_BAR);
  240.                 sctnTrack.setBackground(SWTResourceManager.getColor(SWT.COLOR_WIDGET_BACKGROUND));
  241.                 sctnTrack.setBounds(297, 53, 238, 21);
  242.                 formToolkit.paintBordersFor(sctnTrack);
  243.                 sctnTrack.setText("Tracklist:");
  244.                 sctnTrack.setExpanded(true);
  245.                
  246.                 Section sctnFI = formToolkit.createSection(shell, Section.SHORT_TITLE_BAR);
  247.                 sctnFI.setBackground(SWTResourceManager.getColor(SWT.COLOR_WIDGET_BACKGROUND));
  248.                 sctnFI.setBounds(0, 53, 296, 21);
  249.                 formToolkit.paintBordersFor(sctnFI);
  250.                 sctnFI.setText("File information:");
  251.                 sctnFI.setExpanded(true);
  252.                
  253.                 Label lblTrack = new Label(shell, SWT.NONE);
  254.                 lblTrack.setBounds(23, 116, 55, 15);
  255.                 lblTrack.setText("Track:");
  256.                
  257.                 Label lblArtist = new Label(shell, SWT.NONE);
  258.                 lblArtist.setBounds(23, 143, 55, 15);
  259.                 lblArtist.setText("Artist:");
  260.                
  261.                 Label lblAlbum = new Label(shell, SWT.NONE);
  262.                 lblAlbum.setBounds(23, 170, 55, 15);
  263.                 lblAlbum.setText("Album:");
  264.                
  265.                 Label lblLenght = new Label(shell, SWT.NONE);
  266.                 lblLenght.setBounds(23, 196, 55, 15);
  267.                 lblLenght.setText("Lenght:");
  268.                
  269.                 txtTitle = new Text(shell, SWT.BORDER);
  270.                 txtTitle.setText("N/A");
  271.                 txtTitle.setBounds(103, 116, 181, 21);
  272.                
  273.                 txtArtist = new Text(shell, SWT.BORDER);
  274.                 txtArtist.setText("N/A");
  275.                 txtArtist.setBounds(103, 143, 181, 21);
  276.                
  277.                 txtAlbum = new Text(shell, SWT.BORDER);
  278.                 txtAlbum.setText("N/A");
  279.                 txtAlbum.setBounds(103, 169, 181, 21);
  280.                
  281.                 txtLenght = new Text(shell, SWT.BORDER);
  282.                 txtLenght.setText("N/A");
  283.                 txtLenght.setBounds(103, 196, 181, 21);
  284.                
  285.                 final Slider slider = new Slider(shell, SWT.NONE);
  286.                 slider.setThumb(1);
  287.                 slider.setMaximum(10);
  288.                 slider.setPageIncrement(1);
  289.                 slider.setSelection(4);
  290.                 slider.setBounds(325, 30, 170, 17);
  291.                
  292.                 Label lblCover = new Label(shell, SWT.NONE);
  293.                 lblCover.setBounds(23, 223, 55, 15);
  294.                 lblCover.setText("Cover:");
  295.                
  296.                 Label lblVolume = new Label(shell, SWT.NONE);
  297.                 lblVolume.setBounds(325, 10, 55, 15);
  298.                 lblVolume.setText("Volume:");
  299.                
  300.                 Label lblTracklist = new Label(shell, SWT.NONE);
  301.                 lblTracklist.setBounds(315, 95, 55, 15);
  302.                 lblTracklist.setText("Tracklist:");
  303.                
  304.                 Label label = new Label(shell, SWT.SEPARATOR | SWT.HORIZONTAL);
  305.                 label.setBounds(0, 53, 534, 2);
  306.                
  307.                 Label label_1 = new Label(shell, SWT.SEPARATOR | SWT.VERTICAL);
  308.                 label_1.setBounds(296, 53, 2, 349);
  309.                
  310.                 slider.addListener(SWT.Selection, new Listener() {
  311.                       public void handleEvent(Event event) {
  312.                         String string = "SWT.NONE";
  313.                         float tempUp = (float) (value - 0.1);
  314.                         float tempDown = (float) (value + 0.1);
  315.                         switch (event.detail) {
  316.                         case SWT.DRAG:
  317.                           string = "SWT.DRAG";
  318.                           value = slider.getSelection();
  319.                                         try {
  320.                                                 player.volumeset(value);
  321.                                         } catch (LineUnavailableException e1) {
  322.                                                 // TODO Auto-generated catch block
  323.                                                 e1.printStackTrace();
  324.                                         }
  325.                           break;
  326.                         case SWT.ARROW_DOWN:
  327.                           string = "SWT.ARROW_DOWN";
  328.                           value = slider.getSelection();
  329.                                         try {
  330.                                                 player.volumeset(value);
  331.                                         } catch (LineUnavailableException e1) {
  332.                                                 // TODO Auto-generated catch block
  333.                                                 e1.printStackTrace();
  334.                                         }
  335.                           break;
  336.                         case SWT.ARROW_UP:
  337.                           string = "SWT.ARROW_UP";
  338.                           value = slider.getSelection();
  339.                                         try {
  340.                                                 player.volumeset(value);
  341.                                         } catch (LineUnavailableException e1) {
  342.                                                 // TODO Auto-generated catch block
  343.                                                 e1.printStackTrace();
  344.                                         }
  345.                           break;
  346.                         case SWT.NONE:
  347.                               string = "SWT.NONE";
  348.                                         try {
  349.                                                 player.volumeset(slider.getSelection());
  350.                                         } catch (LineUnavailableException e) {
  351.                                                 // TODO Auto-generated catch block
  352.                                                 e.printStackTrace();
  353.                                         }
  354.                               break;
  355.                         }
  356.                         //System.out.println("Scroll detail -> " + string);
  357.                         //System.out.println("Value detail -> " + value);
  358.                         //System.out.println("Selektor -> " + slider.getSelection());
  359.                       }
  360.                     });
  361.         }
  362. }