⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 playframe.java

📁 简单的播放器
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
package audioplayer;

import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.Rectangle;
import javax.swing.JButton;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JList;
import javax.swing.JLabel;
import javax.swing.DefaultListModel;
import javax.swing.JScrollPane;
import java.awt.Component;
import javax.swing.JOptionPane;
import javax.swing.JToggleButton;
import javax.swing.JMenuBar;
import java.awt.Font;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import java.awt.Color;
import javax.swing.ImageIcon;
import javax.swing.SwingConstants;
import javax.media.ControllerListener;
import javax.media.Player;
import javax.media.Manager;
import javax.media.MediaLocator;
import javax.media.NoPlayerException;
import javax.media.ControllerEvent;
import javax.media.ControllerClosedEvent;
import javax.media.EndOfMediaEvent;
import javax.media.Time;
import javax.media.PrefetchCompleteEvent;
import javax.media.RealizeCompleteEvent;
import java.awt.FileDialog;
import javax.swing.JPopupMenu;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.Event;
import java.awt.BorderLayout;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.FileReader;
import java.io.BufferedReader;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

public class PlayFrame extends JFrame implements ControllerListener {
    //num:列表计数器和数组下标
    Integer num = -1;
    //gD:文件路径 gF:文件名
    String[] gD = new String[50];
    String[] gF = new String[50];
    //声明Player变量
    Player player;
    //声明文件读取变量
    FileDialog OpenFileDialog;
    //声明视频窗口变量(visualcom)、播放控制变量(controlcom)
    Component visualcom, controlcom;
    //声明循环控制变量,true为循环播放
    boolean loop = true;
    JPanel contentPane;
    //ConterjPanel:控制面板
    JPanel ConterjPanel = new JPanel();
    //ListjPanel:列表面板
    JPanel ListjPanel = new JPanel();
    ImageIcon[] jb = {new ImageIcon("img\\max.gif"),
                     new ImageIcon("img\\min.gif"),
                     new ImageIcon("img\\repeat.gif"),
                     new ImageIcon("img\\shufflerepeat.gif")};
    //PlayjButton:播放按钮
    JButton PlayjButton = new JButton(new ImageIcon("img\\play.gif"));
    //PausejButton:暂停按钮
    JButton PausejButton = new JButton(new ImageIcon("img\\pause.gif"));
    //StopjButton:停止按钮
    JButton StopjButton = new JButton(new ImageIcon("img\\stop.gif"));
    //OpenjButton:打开按钮
    JButton OpenjButton = new JButton(new ImageIcon("img\\open.gif"));
    //model为非空模型,用于List的显示
    DefaultListModel model = new DefaultListModel();
    //List:文件列表
    JList List = new JList(model);
    JScrollPane jScrollPanel = new JScrollPane();
    //ListjToggleButton:打开/隐藏列表按钮
    JToggleButton ListjToggleButton = new JToggleButton(jb[1]);
    //NextjButton:下一个
    JButton NextjButton = new JButton(new ImageIcon("img\\next.gif"));
    //PreviousjButton:上一个
    JButton PreviousjButton = new JButton(new ImageIcon("img\\back.gif"));
    JMenuBar AboutjMenuBar = new JMenuBar();
    JMenu AboutjMenu = new JMenu();
    //HelpjMenuItem:帮助文档
    JMenuItem HelpjMenuItem = new JMenuItem();
    //AboutjMenuItem:版本信息及制作人
    JMenuItem AboutjMenuItem = new JMenuItem();
    //ExitjMenuItem:退出
    JMenuItem ExitjMenuItem = new JMenuItem();
    //NamejLabel:显示当前文件名
    JLabel NamejLabel = new JLabel();
    TestImage Conterimage = new TestImage();
    TestImage Listimage = new TestImage();
    TestImage FileSliderimage = new TestImage();
    //ConterjPopupMenu:右键菜单
    JPopupMenu ConterjPopupMenu = new JPopupMenu();
    JMenuItem PlayjMenuItem = new JMenuItem();
    JMenuItem AddjMenuItem = new JMenuItem();
    JMenuItem DeletejMenuItem = new JMenuItem();
    //repeatjToggleButton:循环/非循环按钮
    JToggleButton repeatjToggleButton = new JToggleButton(jb[3]);
    //FileSliderjPanel用于显示controlcom上的功能键
    JPanel FileSliderjPanel = new JPanel();
    BorderLayout borderLayout1 = new BorderLayout();
    JMenu StartjMenu = new JMenu();
    //LoadjMenuItem:读取已存在的列表(*.dat)
    JMenuItem LoadjMenuItem = new JMenuItem();
    //VideojPanel用于显示视频
    JPanel VideojPanel = new JPanel();
    BorderLayout borderLayout2 = new BorderLayout();
    //SavejMenuItem:保存当前列表(*.dat)
    JMenuItem SavejMenuItem = new JMenuItem();
    KeyEvent e;
    public PlayFrame() {
        try {
            setDefaultCloseOperation(EXIT_ON_CLOSE);
            jbInit();
        } catch (Exception exception) {
            exception.printStackTrace();
        }
    }

    private void jbInit() throws Exception {

        contentPane = (JPanel) getContentPane();
        contentPane.setLayout(null);
        //注册List范围内的右键监听
        List.addMouseListener(new MouseAdapter() {
            public void mouseClicked(MouseEvent event) {
                if (event.getModifiers() == Event.META_MASK) {
                    ConterjPopupMenu.show(contentPane, event.getX() + 30,
                                          event.getY() + 120);
                }
            }
        });
        //注册Listimage范围内的右键监听。当 num > 5 时,List范围内的右键菜单会随jScrollPane的卷轴滚动的方向移动,所以我加了一个List周边的右键,以方便使用
        Listimage.addMouseListener(new MouseAdapter() {
            public void mouseClicked(MouseEvent event) {
                if (event.getModifiers() == Event.META_MASK) {
                    ConterjPopupMenu.show(contentPane, event.getX(),
                                          event.getY() + 87);
                }
            }
        });
        //注册List范围内的鼠标双击监听(播放所选择的歌曲)
        List.addMouseListener(new MouseAdapter() {
            public void mouseClicked(MouseEvent event) {
                if (event.getClickCount() == 2 && event.getButton() == 1) {
                    PlayjButton.doClick();
                }
            }
        });
        //添加List范围内的删除按钮的快捷键(Delete)
        List.addKeyListener(new KeyAdapter() {
            public void keyPressed(KeyEvent e) {
                if (e.getKeyCode() == e.VK_DELETE) {
                    DeletejMenuItem.doClick();
                    List.setSelectedIndex(List.getSelectedIndex());
                }
            }
        });
        //添加List范围内的添加歌曲按钮的快捷键(insert)
        List.addKeyListener(new KeyAdapter() {
            public void keyPressed(KeyEvent e) {
                if (e.getKeyCode() == e.VK_INSERT) {
                    AddjMenuItem.doClick();
                }
            }
        });
        //添加List范围内的帮助按钮的快捷键(F1)
                List.addKeyListener(new KeyAdapter() {
                    public void keyPressed(KeyEvent e) {
                        if (e.getKeyCode() == e.VK_F1) {
                            HelpjMenuItem.doClick();
                        }
                    }
        });
        /*//添加List范围内的下一个按钮的快捷键(->)
        List.addKeyListener(new KeyAdapter() {
            public void keyPressed(KeyEvent e) {
                if (e.getKeyCode() == e.VK_RIGHT) {
                    NextjButton.doClick();
                }
            }
        });
        //添加List范围内的上一个按钮的快捷键(<-)
        List.addKeyListener(new KeyAdapter() {
            public void keyPressed(KeyEvent e) {
                if (e.getKeyCode() == e.VK_LEFT) {
                    PreviousjButton.doClick();
                }
            }
        });
        //添加List范围内的播放按钮的快捷键(Enter)
        List.addKeyListener(new KeyAdapter() {
            public void keyPressed(KeyEvent e) {
                if (e.getKeyCode() == e.VK_ENTER) {
                    PlayjButton.doClick();
                }
            }
        });
        //添加List范围内的停止按钮的快捷键(S)
        List.addKeyListener(new KeyAdapter() {
            public void keyPressed(KeyEvent e) {
                if (e.getKeyCode() == e.VK_S) {
                    StopjButton.doClick();
                }
            }
        });
        //添加List范围内的播放列表按钮的快捷键(L)
        List.addKeyListener(new KeyAdapter() {
            public void keyPressed(KeyEvent e) {
                if (e.getKeyCode() == e.VK_L) {
                    ListjToggleButton.doClick();
                }
            }
        });
        //添加List范围内的播放模式按钮的快捷键(R)
        List.addKeyListener(new KeyAdapter() {
            public void keyPressed(KeyEvent e) {
                if (e.getKeyCode() == e.VK_R) {
                    repeatjToggleButton.doClick();
                }
            }
        });*/
        this.getContentPane().setBackground(new Color(212, 138, 200));
        this.setJMenuBar(AboutjMenuBar);
        this.setResizable(false);
        setSize(new Dimension(213, 345));
        setTitle("AudioPlayer 1.0");
        contentPane.setBackground(new Color(212, 208, 200));
        contentPane.setRequestFocusEnabled(true);
        ConterjPanel.setBounds(new Rectangle(0, 0, 213, 85));
        ConterjPanel.setLayout(null);
        ListjPanel.setBounds(new Rectangle(0, 87, 213, 213));
        ListjPanel.setLayout(null);
        PlayjButton.setBackground(new Color(212, 208, 200));
        PlayjButton.setBounds(new Rectangle(57, 16, 22, 17));
        PlayjButton.addActionListener(new PlayFrame_PlayjButton_actionAdapter(this));
        PausejButton.setBackground(new Color(212, 208, 200));
        PausejButton.setBounds(new Rectangle(78, 16, 24, 17));
        PausejButton.addActionListener(new PlayFrame_PausejButton_actionAdapter(this));
        StopjButton.setBackground(new Color(212, 208, 200));
        StopjButton.setBounds(new Rectangle(101, 16, 25, 17));
        StopjButton.addActionListener(new PlayFrame_StopjButton_actionAdapter(this));
        OpenjButton.setBackground(new Color(212, 208, 200));
        OpenjButton.setBounds(new Rectangle(147, 16, 24, 17));
        OpenjButton.addActionListener(new PlayFrame_OpenjButton_actionAdapter(this));
        jScrollPanel.setBounds(new Rectangle(30, 31, 149, 145));
        ListjToggleButton.setBackground(new Color(212, 208, 200));
        ListjToggleButton.setBounds(new Rectangle(172, 72, 28, 13));
        ListjToggleButton.addActionListener(new
                                            PlayFrame_ListjToggleButton_actionAdapter(this));
        NextjButton.setBackground(new Color(212, 208, 200));
        NextjButton.setBounds(new Rectangle(125, 16, 23, 17));
        NextjButton.addActionListener(new PlayFrame_NextjButton_actionAdapter(this));
        PreviousjButton.setBackground(new Color(212, 208, 200));
        PreviousjButton.setBounds(new Rectangle(34, 16, 23, 17));
        PreviousjButton.addActionListener(new
                                          PlayFrame_PreviousjButton_actionAdapter(this));
        AboutjMenuBar.setFont(new java.awt.Font("宋体", Font.BOLD, 12));
        AboutjMenu.setFont(new java.awt.Font("宋体", Font.BOLD, 12));
        AboutjMenu.setText("About");
        HelpjMenuItem.setFont(new java.awt.Font("宋体", Font.BOLD, 12));
        HelpjMenuItem.setText("Help");
        HelpjMenuItem.addActionListener(new
                                        PlayFrame_HelpjMenuItem_actionAdapter(this));
        AboutjMenuItem.setFont(new java.awt.Font("宋体", Font.BOLD, 12));
        AboutjMenuItem.setText("About Me");
        AboutjMenuItem.addActionListener(new
                                         PlayFrame_AboutjMenuItem_actionAdapter(this));

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -