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

📄 playframe.java

📁 简单的播放器
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
        ExitjMenuItem.setFont(new java.awt.Font("宋体", Font.BOLD, 12));
        ExitjMenuItem.setText("Exit");
        ExitjMenuItem.addActionListener(new
                                        PlayFrame_ExitjMenuItem_actionAdapter(this));
        NamejLabel.setFont(new java.awt.Font("宋体", Font.BOLD, 14));
        NamejLabel.setForeground(new Color(125, 59, 72));
        NamejLabel.setHorizontalAlignment(SwingConstants.CENTER);
        NamejLabel.setBounds(new Rectangle(24, 0, 158, 14));
        Listimage.setBounds(new Rectangle(0, 0, 10, 10));
        PlayjMenuItem.setFont(new java.awt.Font("宋体", Font.BOLD, 12));
        PlayjMenuItem.setText("Play");
        PlayjMenuItem.addActionListener(new
                                        PlayFrame_PlayjMenuItem_actionAdapter(this));
        AddjMenuItem.setFont(new java.awt.Font("宋体", Font.BOLD, 12));
        AddjMenuItem.setText("Add");
        AddjMenuItem.addActionListener(new PlayFrame_AddjMenuItem_actionAdapter(this));
        DeletejMenuItem.setFont(new java.awt.Font("宋体", Font.BOLD, 12));
        DeletejMenuItem.setText("Delete");
        DeletejMenuItem.addActionListener(new
                                          PlayFrame_DeletejMenuItem_actionAdapter(this));
        repeatjToggleButton.setToolTipText("");
        repeatjToggleButton.setBounds(new Rectangle(33, 38, 26, 14));
        repeatjToggleButton.addActionListener(new
                                              PlayFrame_repeatjToggleButton_actionAdapter(this));
        FileSliderjPanel.setBounds(new Rectangle(33, 54, 144, 18));
        FileSliderjPanel.setLayout(borderLayout1);
        StartjMenu.setFont(new java.awt.Font("宋体", Font.BOLD, 12));
        StartjMenu.setText("Start");
        LoadjMenuItem.setFont(new java.awt.Font("宋体", Font.BOLD, 12));
        LoadjMenuItem.setText("Load");
        LoadjMenuItem.addActionListener(new
                                        PlayFrame_LoadjMenuItem_actionAdapter(this));
        VideojPanel.setBounds(new Rectangle(212, 0, 318, 294));
        VideojPanel.setLayout(borderLayout2);
        SavejMenuItem.setFont(new java.awt.Font("宋体", Font.BOLD, 12));
        SavejMenuItem.setText("Save");
        SavejMenuItem.addActionListener(new
                                        PlayFrame_SavejMenuItem_actionAdapter(this));
        contentPane.add(ListjPanel);
        contentPane.add(ConterjPanel);
        AboutjMenuBar.add(StartjMenu);
        AboutjMenuBar.add(AboutjMenu);
        AboutjMenu.add(HelpjMenuItem);
        AboutjMenu.add(AboutjMenuItem);
        ListjPanel.add(Listimage);
        Listimage.add(jScrollPanel);
        jScrollPanel.getViewport().add(List);
        Listimage.setLayout(null);
        Listimage.setBounds(new Rectangle(0, 0, 207, 207));
        Listimage.setImage("img\\Listjpanel.gif");
        Listimage.setSize(207, 207);
        ListjPanel.add(Listimage);
        Conterimage.setLayout(null);
        Conterimage.setBounds(new Rectangle(0, 0, 213, 85));
        Conterimage.setImage("img\\conterjpanel.gif");
        Conterimage.setSize(203, 85);
        ConterjPanel.add(Conterimage);
        ConterjPanel.add(VideojPanel);
        FileSliderimage.setLayout(null);
        FileSliderimage.setBounds(new Rectangle(0, 0));
        FileSliderimage.setImage("img\\FileSlider.gif");
        FileSliderimage.setSize(180, 25);
        FileSliderjPanel.add(FileSliderimage);
        Conterimage.add(ListjToggleButton);
        Conterimage.add(repeatjToggleButton);
        Conterimage.add(NamejLabel);
        Conterimage.add(PreviousjButton);
        Conterimage.add(PlayjButton);
        Conterimage.add(PausejButton);
        Conterimage.add(OpenjButton);
        Conterimage.add(NextjButton);
        Conterimage.add(StopjButton);
        Conterimage.add(FileSliderjPanel);
        ConterjPopupMenu.add(PlayjMenuItem);
        ConterjPopupMenu.add(AddjMenuItem);
        ConterjPopupMenu.add(DeletejMenuItem);
        StartjMenu.add(SavejMenuItem);
        StartjMenu.add(LoadjMenuItem);
        StartjMenu.add(ExitjMenuItem);
        PlayjButton.setToolTipText("Play");
        StopjButton.setToolTipText("Stop");
        repeatjToggleButton.setToolTipText("Repeat");
        ListjToggleButton.setToolTipText("List");
        NextjButton.setToolTipText("Next");
        PreviousjButton.setToolTipText("Previous");
        PausejButton.setToolTipText("Pause");
        OpenjButton.setToolTipText("Open");
        repeatjToggleButton.setMnemonic(e.VK_R);
        StopjButton.setMnemonic(e.VK_S);
        PlayjButton.setMnemonic(e.VK_ENTER);
        ListjToggleButton.setMnemonic(e.VK_L);
        NextjButton.setMnemonic(e.VK_RIGHT);
        PreviousjButton.setMnemonic(e.VK_LEFT);
        PausejButton.setMnemonic(e.VK_P);
        //运行时读取已存在的列表,若列表为空,则不读取
        try {
            FileReader nr = new FileReader("num.dat");
            BufferedReader bnr = new BufferedReader(nr);
            FileReader fr = new FileReader("file.dat");
            BufferedReader br = new BufferedReader(fr);
            FileReader fn = new FileReader("name.dat");
            BufferedReader bn = new BufferedReader(fn);
            String num1 = bnr.readLine();
            bnr.close();
            if (num1 != null) {
                try {
                    //num要记录数组下标
                    num = Integer.parseInt(num1);
                } catch (Exception ex) {
                    JOptionPane.showMessageDialog(this, ex,
                                                  "AudioPlayer 1.0",
                                                  JOptionPane.CLOSED_OPTION);
                }
            }
            for (int i = 0; i <= num; i++) {
                gF[i] = bn.readLine();
                gD[i] = br.readLine();
            }
            //将读取到的文件名加载到List当中
            if (num >= 0 && gD[num] != null && gF[num] != null) {
                for (int i = 0; i <= num; i++) {
                    model.addElement(gF[i].toString());
                }
                br.close();
                bn.close();
                //指向List中第一个索引处,此处设计是为了防止部分具有播放功能的按钮不会出现异常
                List.setSelectedIndex(0);
            }
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(this, ex,
                                          "AudioPlayer 1.0",
                                          JOptionPane.CLOSED_OPTION);
        }
        this.SavejMenuItem.setEnabled(false);
        this.LoadjMenuItem.setEnabled(false);
    }

    //点击播放器上部About下拉菜单,点击AboutjMenuItem显示版本信息和制作人
    public void AboutjMenuItem_actionPerformed(ActionEvent e) {
        JOptionPane.showMessageDialog(this, "版本:1.0\nWilliam组 制作   [2006年12月]",
                                      "AudioPlayer 1.0",
                                      JOptionPane.CLOSED_OPTION);
    }

    //点击ListjToggleButton打开/隐藏列表
    public void ListjToggleButton_actionPerformed(ActionEvent e) {
        if (ListjToggleButton.isSelected()) {
            //只显示控制面板的内容
            this.setSize(213, 132);
            this.setVisible(true);
            //设置按钮的图片
            ListjToggleButton.setIcon(jb[0]);
        } else {
            //当有视频窗口时要显示视频窗口,否则隐藏视频窗口
            if (visualcom != null) {
                this.setSize(539, 345);
            } else {
                this.setSize(213, 345);
            }
            this.setVisible(true);
            //设置按钮的图片
            ListjToggleButton.setIcon(jb[1]);
        }
    }

    //点击OpenjButton打开文件选择对话框,选择后,并播放所选文件
    public void OpenjButton_actionPerformed(ActionEvent e) {
        try {
            ++num;
            //先创建一个对话框对象,标题设置为“打开媒体文件”
            OpenFileDialog = new FileDialog(this, "打开媒体文件", FileDialog.LOAD);
            //设置该对话框的当前目录为上一次打开的目录
            OpenFileDialog.setDirectory(gD[num]);
            OpenFileDialog.setVisible(true);
            if (OpenFileDialog.getFile() == null) {
                --num;
            } else {
                //将已选择文件的路径存入数组
                gD[num] = OpenFileDialog.getDirectory();
                //将已选择文件的文件名存入数组
                gF[num] = OpenFileDialog.getFile();
                //如果JMF播放器对象存在,就关闭该播放器对象
                if (player != null)
                    player.close();
                try {
                    //根据指定的目录和文件名创建一个媒体定位器(MediaLocator)对象,再利用该媒体定位器对象创建一个JMF播放器对象
                    player = Manager.createPlayer(new MediaLocator("file:" +
                            gD[num] +
                            gF[num]));
                } catch (java.io.IOException ex) {
                    JOptionPane.showMessageDialog(this, ex,
                                                  "AudioPlayer 1.0",
                                                  JOptionPane.CLOSED_OPTION);
                    return;
                } catch (NoPlayerException e2) {
                    JOptionPane.showMessageDialog(this, "不能找到播放器.",
                                                  "AudioPlayer 1.0",
                                                  JOptionPane.CLOSED_OPTION);
                    return;
                }
                if (player == null) {
                    JOptionPane.showMessageDialog(this, "无法创建播放器.",
                                                  "AudioPlayer 1.0",
                                                  JOptionPane.CLOSED_OPTION);
                    return;
                }
                //将PlayerFrame对象注册为来自JMF播放器对象的控制器事件的动作监听器
                player.addControllerListener(this);
                //让JMF播放器对象预先提取媒体文件的内容
                player.prefetch();
                //将已选中的文件加载到List当中
                model.addElement(gF[num].toString());
                //在播放器上方显示当前播放的文件名
                NamejLabel.setText(gF[num].toString());
                //List中显示当前播放的文件
                List.setSelectedIndex(num);
                this.SavejMenuItem.setEnabled(true);
                this.LoadjMenuItem.setEnabled(true);
            }
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(this, ex,
                                          "AudioPlayer 1.0",
                                          JOptionPane.CLOSED_OPTION);
        }
    }

    //点击PlayjButton播放List中当前所选的文件
    public void PlayjButton_actionPerformed(ActionEvent e) {
        //判断播放列表是否为空,如果不为空则播放List中当前所选择的文件,否则弹出消息框
        if (model.isEmpty() == true) {
            JOptionPane.showMessageDialog(this, "NO Music File",
                                          "AudioPlayer 1.0",
                                          JOptionPane.CLOSED_OPTION);
        } else {
            //如果JMF播放器对象存在,就关闭该播放器对象
            if (player != null)
                player.close();
            try {
                //根据指定的目录和文件名创建一个媒体定位器(MediaLocator)对象,再利用该媒体定位器对象创建一个JMF播放器对象
                player = Manager.createPlayer(new MediaLocator("file:" +
                        gD[List.getSelectedIndex()] + gF[List.getSelectedIndex()]));
            } catch (java.io.IOException ex) {
                JOptionPane.showMessageDialog(this, ex,
                                              "AudioPlayer 1.0",
                                              JOptionPane.CLOSED_OPTION);
                return;
            } catch (NoPlayerException ex) {
                JOptionPane.showMessageDialog(this, "不能找到播放器.",
                                              "AudioPlayer 1.0",
                                              JOptionPane.CLOSED_OPTION);
                return;
            }
            if (player == null) {
                JOptionPane.showMessageDialog(this, "无法创建播放器.",
                                              "AudioPlayer 1.0",
                                              JOptionPane.CLOSED_OPTION);
                return;
            }
            //将PlayerFrame对象注册为来自JMF播放器对象的控制器事件的动作监听器
            player.addControllerListener(this);
            //最后,让JMF播放器对象预先提取媒体文件的内容
            player.prefetch();
            //在播放器上方显示当前播放的文件名
            NamejLabel.setText(List.getSelectedValue().toString());
        }
    }

    //点击PausejButton暂停List中当前所选的文件
    public void PausejButton_actionPerformed(ActionEvent e) {
        try {
            player.stop();
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(this, ex, "AudioPlayer 1.0",
                                          JOptionPane.CLOSED_OPTION);
        }
    }

    //点击StopjButton停止List中当前所选的文件
    public void StopjButton_actionPerformed(ActionEvent e) {

⌨️ 快捷键说明

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