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

📄 playerui.java

📁 java平台的图形音乐播放器
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
        miPlayLocation.addActionListener(this);
        playSubMenu.add(miPlayFile);
        playSubMenu.add(miPlayLocation);
        mainpopup.add(playSubMenu);
        mainpopup.addSeparator();
        miPlaylist = new JCheckBoxMenuItem(ui.getResource("popup.playlist"));
        miPlaylist.setActionCommand(PlayerActionEvent.MIPLAYLIST);
        if (config.isPlaylistEnabled()) miPlaylist.setState(true);
        miPlaylist.removeActionListener(this);
        miPlaylist.addActionListener(this);
        mainpopup.add(miPlaylist);
        miEqualizer = new JCheckBoxMenuItem(ui.getResource("popup.equalizer"));
        miEqualizer.setActionCommand(PlayerActionEvent.MIEQUALIZER);
        if (config.isEqualizerEnabled()) miEqualizer.setState(true);
        miEqualizer.removeActionListener(this);
        miEqualizer.addActionListener(this);
        mainpopup.add(miEqualizer);
        mainpopup.addSeparator();
        mi = new JMenuItem(ui.getResource("popup.preferences"));
        mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P, ActionEvent.CTRL_MASK, false));
        mi.setActionCommand(PlayerActionEvent.MIPREFERENCES);
        mi.removeActionListener(this);
        mi.addActionListener(this);
        mainpopup.add(mi);
        JMenu skinsSubMenu = new JMenu(ui.getResource("popup.skins"));
        mi = new JMenuItem(ui.getResource("popup.skins.browser"));
        mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, ActionEvent.ALT_MASK, false));
        mi.setActionCommand(PlayerActionEvent.MISKINBROWSER);
        mi.removeActionListener(this);
        mi.addActionListener(this);
        skinsSubMenu.add(mi);
        mi = new JMenuItem(ui.getResource("popup.skins.load"));
        mi.setActionCommand(PlayerActionEvent.MILOADSKIN);
        mi.removeActionListener(this);
        mi.addActionListener(this);
        skinsSubMenu.add(mi);
        mainpopup.add(skinsSubMenu);
        JMenu playbackSubMenu = new JMenu(ui.getResource("popup.playback"));
        mi = new JMenuItem(ui.getResource("popup.playback.jump"));
        mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_J, 0, false));
        mi.setActionCommand(PlayerActionEvent.MIJUMPFILE);
        mi.removeActionListener(this);
        mi.addActionListener(this);
        playbackSubMenu.add(mi);
        mi = new JMenuItem(ui.getResource("popup.playback.stop"));
        mi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, 0, false));
        mi.setActionCommand(PlayerActionEvent.MISTOP);
        mi.removeActionListener(this);
        mi.addActionListener(this);
        playbackSubMenu.add(mi);
        mainpopup.add(playbackSubMenu);
        mainpopup.addSeparator();
        mi = new JMenuItem(ui.getResource("popup.exit"));
        mi.setActionCommand(PlayerActionEvent.ACEXIT);
        mi.removeActionListener(this);
        mi.addActionListener(this);
        mainpopup.add(mi);
        // Popup menu on TitleBar
        ui.getAcTitleBar().removeMouseListener(popupAdapter);
        popupAdapter = new PopupAdapter(mainpopup);
        ui.getAcTitleBar().addMouseListener(popupAdapter);
        // Popup menu on Eject button
        ejectpopup = new JPopupMenu();
        mi = new JMenuItem(ui.getResource("popup.eject.openfile"));
        mi.setActionCommand(PlayerActionEvent.MIPLAYFILE);
        mi.removeActionListener(this);
        mi.addActionListener(this);
        ejectpopup.add(mi);
        mi = new JMenuItem(ui.getResource("popup.eject.openlocation"));
        mi.setActionCommand(PlayerActionEvent.MIPLAYLOCATION);
        mi.removeActionListener(this);
        mi.addActionListener(this);
        ejectpopup.add(mi);
        ui.getAcEject().removeMouseListener(ejectpopupAdapter);
        ejectpopupAdapter = new PopupAdapter(ejectpopup);
        ui.getAcEject().addMouseListener(ejectpopupAdapter);
        // EqualizerUI
        if (equalizerUI != null) equalizerUI.loadUI();
        if (playlistUI != null) playlistUI.loadUI();
        validate();
        loader.loaded();
    }

    /**
     * Load playlist.
     * @param playlistName
     * @return
     */
    public boolean loadPlaylist(String playlistName)
    {
        boolean loaded = false;
        PlaylistFactory plf = PlaylistFactory.getInstance();
        playlist = plf.getPlaylist();
        if (playlist == null)
        {
            config.setPlaylistClassName("javazoom.jlgui.player.amp.playlist.BasePlaylist");
            playlist = plf.getPlaylist();
        }
        playlistUI.setPlaylist(playlist);
        if ((playlistName != null) && (!playlistName.equals("")))
        {
            // M3U file or URL.
            if ((playlistName.toLowerCase().endsWith(ui.getResource("playlist.extension.m3u"))) || (playlistName.toLowerCase().endsWith(ui.getResource("playlist.extension.pls")))) loaded = playlist.load(playlistName);
            // Simple song.
            else
            {
                String name = playlistName;
                if (!Config.startWithProtocol(playlistName))
                {
                    int indn = playlistName.lastIndexOf(java.io.File.separatorChar);
                    if (indn != -1) name = playlistName.substring(indn + 1);
                    PlaylistItem pli = new PlaylistItem(name, playlistName, -1, true);
                    playlist.appendItem(pli);
                    loaded = true;
                }
                else
                {
                    PlaylistItem pli = new PlaylistItem(name, playlistName, -1, false);
                    playlist.appendItem(pli);
                    loaded = true;
                }
            }
        }
        return loaded;
    }

    /* (non-Javadoc)
     * @see javax.swing.event.ChangeListener#stateChanged(javax.swing.event.ChangeEvent)
     */
    public void stateChanged(ChangeEvent e)
    {
        Object src = e.getSource();
        //log.debug("State (EDT=" + SwingUtilities.isEventDispatchThread() + ")");
        // Volume
        if (src == ui.getAcVolume())
        {
            Object[] args = { String.valueOf(ui.getAcVolume().getValue()) };
            String volumeText = MessageFormat.format(ui.getResource("slider.volume.text"), args);
            ui.getAcTitleLabel().setAcText(volumeText);
            try
            {
                int gainValue = ui.getAcVolume().getValue();
                int maxGain = ui.getAcVolume().getMaximum();
                if (gainValue == 0) theSoundPlayer.setGain(0);
                else theSoundPlayer.setGain(((double) gainValue / (double) maxGain));
                config.setVolume(gainValue);
            }
            catch (BasicPlayerException ex)
            {
                log.debug("Cannot set gain", ex);
            }
        }
        // Balance
        else if (src == ui.getAcBalance())
        {
            Object[] args = { String.valueOf(Math.abs(ui.getAcBalance().getValue() * 100 / Skin.BALANCEMAX)) };
            String balanceText = null;
            if (ui.getAcBalance().getValue() > 0)
            {
                balanceText = MessageFormat.format(ui.getResource("slider.balance.text.right"), args);
            }
            else if (ui.getAcBalance().getValue() < 0)
            {
                balanceText = MessageFormat.format(ui.getResource("slider.balance.text.left"), args);
            }
            else
            {
                balanceText = MessageFormat.format(ui.getResource("slider.balance.text.center"), args);
            }
            ui.getAcTitleLabel().setAcText(balanceText);
            try
            {
                float balanceValue = ui.getAcBalance().getValue() * 1.0f / Skin.BALANCEMAX;
                theSoundPlayer.setPan(balanceValue);
            }
            catch (BasicPlayerException ex)
            {
                log.debug("Cannot set pan", ex);
            }
        }
        else if (src == ui.getAcPosBar())
        {
            if (ui.getAcPosBar().getValueIsAdjusting() == false)
            {
                if (posDragging == true)
                {
                    posDragging = false;
                    posValue = ui.getAcPosBar().getValue() * 1.0 / Skin.POSBARMAX;
                    processSeek(posValue);
                }
            }
            else
            {
                posDragging = true;
                posValueJump = true;
            }
        }
    }

    /* (non-Javadoc)
     * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
     */
    public void actionPerformed(ActionEvent e)
    {
        final ActionEvent evt = e;
        if (e.getActionCommand().equals(PlayerActionEvent.ACPAUSE))
        {
            processActionEvent(e);
        }
        else if ((e.getActionCommand().equals(PlayerActionEvent.ACPLAY)) && (playerState == PAUSE))
        {
            processActionEvent(e);
        }
        else
        {
            new Thread("PlayerUIActionEvent")
            {
                public void run()
                {
                    processActionEvent(evt);
                }
            }.start();
        }
    }

    /**
     * Process action event.
     * @param e
     */
    public void processActionEvent(ActionEvent e)
    {
        String cmd = e.getActionCommand();
        log.debug("Action=" + cmd + " (EDT=" + SwingUtilities.isEventDispatchThread() + ")");
        // Preferences.
        if (cmd.equalsIgnoreCase(PlayerActionEvent.MIPREFERENCES))
        {
            processPreferences(e.getModifiers());
        }
        // Skin browser
        else if (cmd.equals(PlayerActionEvent.MISKINBROWSER))
        {
            processSkinBrowser(e.getModifiers());
        }
        // Jump to file
        else if (cmd.equals(PlayerActionEvent.MIJUMPFILE))
        {
            processJumpToFile(e.getModifiers());
        }
        // Stop
        else if (cmd.equals(PlayerActionEvent.MISTOP))
        {
            processStop(MouseEvent.BUTTON1_MASK);
        }
        // Load skin
        else if (e.getActionCommand().equals(PlayerActionEvent.MILOADSKIN))
        {
            File[] file = FileSelector.selectFile(loader, FileSelector.OPEN, false, ui.getResource("skin.extension"), ui.getResource("loadskin.dialog.filtername"), new File(config.getLastDir()));
            if (FileSelector.getInstance().getDirectory() != null) config.setLastDir(FileSelector.getInstance().getDirectory().getPath());
            if (file != null)
            {
                String fsFile = file[0].getName();
                ui.setPath(config.getLastDir() + fsFile);
                loadSkin();
                config.setDefaultSkin(ui.getPath());
            }
        }
        // Shuffle
        else if (cmd.equals(PlayerActionEvent.ACSHUFFLE))
        {
            if (ui.getAcShuffle().isSelected())
            {
                config.setShuffleEnabled(true);
                if (playlist != null)
                {
                    playlist.shuffle();
                    playlistUI.initPlayList();
                    // Play from the top
                    PlaylistItem pli = playlist.getCursor();
                    setCurrentSong(pli);
                }
            }
            else
            {
                config.setShuffleEnabled(false);
            }
        }
        // Repeat
        else if (cmd.equals(PlayerActionEvent.ACREPEAT))
        {
            if (ui.getAcRepeat().isSelected())
            {
                config.setRepeatEnabled(true);
            }
            else
            {
                config.setRepeatEnabled(false);
            }
        }
        // Play file
        else if (cmd.equals(PlayerActionEvent.MIPLAYFILE))
        {
            processEject(MouseEvent.BUTTON1_MASK);
        }
        // Play URL
        else if (cmd.equals(PlayerActionEvent.MIPLAYLOCATION))
        {
            processEject(MouseEvent.BUTTON3_MASK);
        }
        // Playlist menu item
        else if (cmd.equals(PlayerActionEvent.MIPLAYLIST))
        {
            ui.getAcPlaylist().setSelected(miPlaylist.getState());
            togglePlaylist();
        }
        // Playlist toggle button
        else if (cmd.equals(PlayerActionEvent.ACPLAYLIST))
        {
            togglePlaylist();
        }
        // EqualizerUI menu item
        else if (cmd.equals(PlayerActionEvent.MIEQUALIZER))
        {
            ui.getAcEqualizer().setSelected(miEqualizer.getState());
            toggleEqualizer();
        }
        // EqualizerUI
        else if (cmd.equals(PlayerActionEvent.ACEQUALIZER))
        {
            toggleEqualizer();
        }
        // Exit player
        else if (cmd.equals(PlayerActionEvent.ACEXIT))
        {
            closePlayer();
        }
        // Minimize
        else if (cmd.equals(PlayerActionEvent.ACMINIMIZE))
        {
            loader.minimize();
        }
        // Eject
        else if (cmd.equals(PlayerActionEvent.ACEJECT))
        {
            processEject(e.getModifiers());
        }
        // Play
        else if (cmd.equals(PlayerActionEvent.ACPLAY))
        {
            processPlay(e.getModifiers());
        }
        // Pause
        else if (cmd.equals(PlayerActionEvent.ACPAUSE))
        {

⌨️ 快捷键说明

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