Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package mp3player;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.io.File;
- import javax.swing.JButton;
- import javax.swing.JFileChooser;
- import javax.swing.JFrame;
- import javax.swing.JLabel;
- import javax.swing.JOptionPane;
- import javax.swing.JSlider;
- import javax.swing.UIManager;
- import javax.swing.event.ChangeEvent;
- import javax.swing.event.ChangeListener;
- import javax.swing.filechooser.FileNameExtensionFilter;
- import javafx.embed.swing.JFXPanel;
- import javafx.scene.media.Media;
- import javafx.scene.media.MediaPlayer;
- public class MP3Player {
- private static MediaPlayer player;
- private static JLabel volumeIndicator = new JLabel("50");
- public static void main(final String[] args) {
- try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (Exception e) {}
- final JFrame frame = new JFrame("MP3 Player");
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- frame.setSize(400, 275);
- frame.setLocationRelativeTo(null);
- frame.setResizable(false);
- frame.setLayout(null);
- JFXPanel panel = new JFXPanel();
- panel.setLayout(null);
- frame.setContentPane(panel);
- final JFileChooser chooser = new JFileChooser();
- chooser.setFileFilter(new FileNameExtensionFilter("Arquivos de música", "mp3", "wav"));
- final JButton btnSelect = new JButton("Selecionar arquivo");
- btnSelect.setBounds(25, 25, 150, 50);
- btnSelect.setFocusable(false);
- final JButton btnPause = new JButton("Pausar");
- btnPause.setEnabled(false);
- btnPause.setBounds(200, 25, 150, 50);
- btnPause.setFocusable(false);
- final JButton btnPlay = new JButton("Tocar");
- btnPlay.setEnabled(false);
- btnPlay.setBounds(25, 100, 150, 50);
- btnPlay.setFocusable(false);
- final JButton btnStop = new JButton("Parar");
- btnStop.setEnabled(false);
- btnStop.setBounds(200, 100, 150, 50);
- btnStop.setFocusable(false);
- final JSlider volume = new JSlider(0, 100, 50);
- volume.setEnabled(false);
- volume.setBounds(125, 175, 150, 50);
- volume.setFocusable(false);
- volume.addChangeListener(new VolumeAdapter());
- volumeIndicator.setBounds(195, 220, 30, 20);
- btnSelect.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- chooser.showOpenDialog(frame);
- final File f = chooser.getSelectedFile();
- if (f == null) {
- JOptionPane.showMessageDialog(null, "Arquivo inválido!", "MP3 Player",
- JOptionPane.ERROR_MESSAGE);
- return;
- }
- Media media = new Media(f.toURI().toString());
- player = new MediaPlayer(media);
- player.setVolume(0.5);
- player.play();
- player.setAutoPlay(true);
- btnSelect.setEnabled(false);
- btnPause.setEnabled(true);
- btnStop.setEnabled(true);
- volume.setEnabled(true);
- }
- });
- btnPause.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- player.pause();
- btnPause.setEnabled(false);
- btnStop.setEnabled(false);
- btnPlay.setEnabled(true);
- }
- });
- btnPlay.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- player.play();
- btnPlay.setEnabled(false);
- btnStop.setEnabled(true);
- btnPause.setEnabled(true);
- }
- });
- btnStop.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- player.stop();
- volumeIndicator.setText("50");
- volume.setValue(50);
- btnPlay.setEnabled(false);
- btnPause.setEnabled(false);
- btnStop.setEnabled(false);
- volume.setEnabled(false);
- btnSelect.setEnabled(true);
- }
- });
- panel.add(btnSelect);
- panel.add(btnPause);
- panel.add(btnPlay);
- panel.add(btnStop);
- panel.add(volume);
- panel.add(volumeIndicator);
- frame.setVisible(true);
- }
- private static class VolumeAdapter implements ChangeListener {
- @Override
- public void stateChanged(ChangeEvent e) {
- JSlider slider = (JSlider) e.getSource();
- if (!(slider.getValueIsAdjusting())) {
- double volume = (double) slider.getValue() / 100;
- player.setVolume(volume);
- volumeIndicator.setText("" + slider.getValue());
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement