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

📄 playlistui.java

📁 java+eclipse做的TTPlayer
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
                            }                        }                    }                    rightList.setListData(currentPlayList.getAllItems());                    rightList.setSelectedValue(toSelect, true);                    return true;                } catch (UnsupportedFlavorException ex) {                    Logger.getLogger(PlayListUI.class.getName()).log(Level.SEVERE, null, ex);                } catch (IOException ex) {                    Logger.getLogger(PlayListUI.class.getName()).log(Level.SEVERE, null, ex);                }                return super.importData(support);            }        });        rightList.setDropMode(DropMode.INSERT);    }    public void setPlaylist(PlayList playlist) {        if (playlist == currentPlayList) {            return;        }        rightHasFocus = false;        this.currentPlayList = playlist;        player.setPlayList(playlist);        config.setCurrentPlayListName(playlist.getName());        rightList.setListData(currentPlayList.getAllItems());        rightList.setSelectedValue(player.getCurrentItem(), true);    }    public void actionPerformed(ActionEvent e) {    }    public void mouseClicked(MouseEvent e) {        if (e.getClickCount() == 2 && e.getButton() == MouseEvent.BUTTON1) {            if (e.getSource() == rightList) {                if (rightIndex == -1) {                    return;                }                PlayListItem pl = currentPlayList.getItemAt(rightIndex);                log.info("pl=" + pl);                if (pl != null) {                    currentPlayList.setItemSelected(pl, rightList.getSelectedIndex());                    player.setPlayerState(PlayerUI.PLAY);                    player.setCurrentSong(pl);                }            } else if (e.getSource() == leftList) {                if (leftIndex == -1) {                    return;                }                PlayList pl = playlists.get(leftIndex);                String s = JOptionPane.showInputDialog(config.getPlWindow(), Config.getResource("playlist.rename.content"));                if (s != null && !s.trim().equals("")) {                    pl.setName(s);                }                leftList.setListData(playlists);                repaint();            }        }    }    public void mousePressed(MouseEvent e) {        //这个方法就是保证无论是左键还是右键        //点击都算选中,默认的JAVA实现不是这样的,所以要重写        if (e.getSource() == rightList) {            rightHasFocus = true;            rightIndex = rightList.locationToIndex(e.getPoint());            if ((e.getModifiersEx() & InputEvent.CTRL_DOWN_MASK) == InputEvent.CTRL_DOWN_MASK) {                rightList.addSelectionInterval(rightIndex, rightIndex);            } else if ((e.getModifiersEx() & InputEvent.SHIFT_DOWN_MASK) == InputEvent.SHIFT_DOWN_MASK) {                rightList.setSelectionInterval(rightList.getAnchorSelectionIndex(), rightIndex);            } else {                if (e.getButton() == MouseEvent.BUTTON1) {                    rightList.setSelectedIndex(rightIndex);                } else if (e.getButton() == MouseEvent.BUTTON3) {                    if (!rightList.isSelectedIndex(rightIndex)) {                        rightList.setSelectedIndex(rightIndex);                    }                }            }            rightList.repaint();        } else if (e.getSource() == leftList) {//            rightHasFocus = false;            leftIndex = leftList.locationToIndex(e.getPoint());            leftList.setSelectedIndex(leftIndex);            if (leftIndex == -1) {                return;            }            Object obj = playlists.get(leftIndex);            if (obj != null) {                this.setPlaylist((PlayList) obj);            }            leftList.repaint();        }    }    public void mouseReleased(MouseEvent e) {//        if (e.getSource() == rightList) {//            rightHasFocus = true;//            rightIndex = rightList.locationToIndex(e.getPoint());////            rightList.setSelectedIndex(rightIndex);//        }//        if (e.getButton() == MouseEvent.BUTTON1) {//            if (e.getSource() == leftList) {////                Object obj = leftList.getSelectedValue();////                if (obj != null) {////                    this.setPlaylist((PlayList) obj);////                }//            }//        }        if (e.getButton() == MouseEvent.BUTTON3) {            if (e.getSource() == rightList) {                showRightMenu(e);            } else if (e.getSource() == leftList) {                showLeftMenu(e);            }        }    }    /**     * 显示左边的右键菜单     * @param e 鼠标事件     */    private void showLeftMenu(MouseEvent e) {        JPopupMenu pop = new JPopupMenu();        //新建列表        pop.add(Config.getResource("playlistL.newplaylist")).addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent ae) {                int i = playlists.size();                String name = Config.getResource("playlistL.PreNEW") + (i + 1);                BasicPlayList plist = new BasicPlayList(config);                plist.setName(name);                playlists.add(plist);                setPlaylist(plist);                leftList.setListData(playlists);                leftList.setSelectedValue(plist, true);                repaint();//                SwingUtilities.updateComponentTreeUI(leftList);            }        });        //添加列表        pop.add(Config.getResource("playlistL.addplaylist")).addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent ae) {                JFileChooser jf = Util.getFileChooser(new FileNameFilter("m3u,pls",                        Config.getResource("playlist.filechooser.name"), true),                        JFileChooser.FILES_ONLY);                int i = jf.showOpenDialog(config.getPlWindow());                if (i == JFileChooser.APPROVE_OPTION) {                    BasicPlayList bp = new BasicPlayList(config);                    boolean b = bp.load(jf.getSelectedFile().getPath());                    if (b) {                        playlists.add(bp);                        setPlaylist(bp);                        leftList.setListData(playlists);                        leftList.setSelectedValue(bp, true);                        repaint();                    //SwingUtilities.updateComponentTreeUI(leftList);                    //SwingUtilities.updateComponentTreeUI(rightList);                    }                }            }        });        //保存列表        JMenuItem save = new JMenuItem(Config.getResource("playlistL.saveplaylist"));        save.setEnabled(leftIndex != -1);        pop.add(save).addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent ae) {                PlayList pl = playlists.get(leftIndex);                JFileChooser jf = Util.getFileChooser(new FileNameFilter("m3u",                        Config.getResource("playlist.filechooser.name"), true),                        JFileChooser.FILES_ONLY);                jf.setSelectedFile(new File(pl.getName() + ".m3u"));                int i = jf.showSaveDialog(config.getPlWindow());                if (i == JFileChooser.APPROVE_OPTION) {                    PlayList bp = playlists.get(leftIndex);                    boolean b = bp.save(jf.getSelectedFile().getPath());                }            }        });        //删除列表        JMenuItem delete = new JMenuItem(Config.getResource("playlistL.deleteplaylist"));        delete.setEnabled(leftIndex != -1);        pop.add(delete).addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent ae) {                playlists.remove(leftIndex);                if (playlists.size() > 0) {                    if (leftIndex > playlists.size() - 1) {                        setPlaylist(playlists.get(0));                    } else {                        setPlaylist(playlists.get(leftIndex));                    }                }                leftList.setListData(playlists);                repaint();            //SwingUtilities.updateComponentTreeUI(leftList);            }        });        pop.addSeparator();        //保存所有        pop.add(Config.getResource("playlistL.saveall")).addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent ae) {                JFileChooser jf = Util.getFileChooser(new FileNameFilter("m3u",                        Config.getResource("playlist.filechooser.name"), true),                        JFileChooser.DIRECTORIES_ONLY);                int i = jf.showSaveDialog(config.getPlWindow());                if (i == JFileChooser.APPROVE_OPTION) {                    File f = jf.getSelectedFile();                    if (!f.exists()) {                        f.mkdirs();                    }                    String dir = f.getPath();                    for (PlayList pl : playlists) {                        pl.save(dir + File.separator + pl.getName() + ".m3u");                    }                }            }        });        pop.addSeparator();        //重命名列表        JMenuItem rename = new JMenuItem(Config.getResource("playlistL.rename"));        rename.setEnabled(leftIndex != -1);        pop.add(rename).addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent ae) {                PlayList pl = playlists.get(leftIndex);                String s = JOptionPane.showInputDialog(config.getPlWindow(), Config.getResource("playlist.rename.content"));                if (s != null && !s.trim().equals("")) {                    pl.setName(s);                }                leftList.setListData(playlists);                repaint();            //SwingUtilities.updateComponentTreeUI(leftList);            }        });        pop.addSeparator();        //重排序列表        pop.add(Config.getResource("playlistL.resort")).addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent ae) {                Collections.sort(playlists, new Comparator<PlayList>() {                    public int compare(PlayList o1, PlayList o2) {                        String s1 = o1.getName();                        String s2 = o2.getName();                        return Collator.getInstance(Locale.CHINESE).compare(s1, s2);                    }                });                repaint();                leftList.setListData(playlists);            //SwingUtilities.updateComponentTreeUI(leftList);            }        });        pop.show(e.getComponent(), e.getX(), e.getY());    }    /**     * 显示右边的右键菜单     * @param e 鼠标事件     */    private void showRightMenu(MouseEvent e) {        //说明这个时候选中的是空白区域        if (false) {            return;        }//否则就表示选中了一个项目        else {            JPopupMenu pop = new JPopupMenu();            //播放按钮            if (rightIndex != -1) {                pop.add("<html><b>" + Config.getResource("playlist.play")).addActionListener(new ActionListener() {                    public void actionPerformed(ActionEvent ae) {                        PlayListItem pl = currentPlayList.getItemAt(rightIndex);                        currentPlayList.setItemSelected(pl, rightList.getSelectedIndex());                        player.setPlayerState(PlayerUI.PLAY);                        player.setCurrentSong(pl);//                    player.play();                    }                });            }//            pop.addSeparator();            //文件属性            if (rightIndex != -1) {                pop.add(Config.getResource("playlist.file.property")).addActionListener(new ActionListener() {                    public void actionPerformed(ActionEvent ae) {                        PlayListItem pl = currentPlayList.getItemAt(rightIndex);                        if (pl != null) {                            new SongInfoDialog(config.getPlWindow(), true, pl).setVisible(true);                        }                    }                });            }            pop.addSeparator();            //添加菜单            JMenu add = createAddMenu();            pop.add(add);//            pop.addSeparator();            //删除菜单            JMenu delete = createDeleteMenu();            pop.add(delete);//            pop.addSeparator();            //重命名菜单            JMenu rename = createRenameMenu();            pop.add(rename);//            pop.addSeparator();            //查找菜单            JMenu search = createSearchMenu();            pop.add(search);//            pop.addSeparator();            //排序菜单            JMenu sort = createSortMenu();            pop.add(sort);//            pop.addSeparator();            //编辑菜单            JMenu edit = createEditMenu();            pop.add(edit);//            pop.addSeparator();            //模式菜单            JMenu mode = createModeMenu();            pop.add(mode);            pop.show(e.getComponent(), e.getX(), e.getY());            rightList.requestFocus();        }    }    /**     * 得到重命名的菜单,里面已经构造好了菜单项     * @return 菜单     */    private JMenu createRenameMenu() {        JMenu menu = new JMenu(Config.getResource("playlist.rename"));        if (rightIndex == -1) {            menu.setEnabled(false);            return menu;        }        //加这个限制是因为只有文件才能重命名,而网上的文件就不行了        menu.setEnabled(currentPlayList.getItemAt(rightIndex).isFile());        //歌曲.扩展名命名法        menu.add(Config.getResource("playlist.rename.songName.ext")).addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent ae) {                PlayListItem item = currentPlayList.getItemAt(rightIndex);                //说明 这个时候正在播放这首歌曲,所以先停下来                if (item == player.getCurrentItem()) {                    player.stop();                }                File file = new File(item.getLocation());                File rename = new File(file.getParent(), item.getTitle() + "." + Util.getType(file));                boolean b = file.renameTo(rename);                if (b) {                    item.setLocation(rename.getPath());                }                log.log(Level.INFO, "把文件:" + file + "重命名为:" + rename);                log.log(Level.INFO, "命名成功了吗?" + b);            }        });        //歌手 - 歌曲名.扩展名

⌨️ 快捷键说明

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