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

📄 lyricpanel.java

📁 java+eclipse做的TTPlayer
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
     * 画出正在拖动的时候的时间,以便更好的掌握进度     * 这是画出水平方向的拖动时间     * @param sec 当前的秒数     * @param g 画笔     */    private void drawTimeH(int sec, Graphics g) {        String s = Util.secondToString(sec);        int centerX = getWidth() / 2;        int height = getHeight();        g.drawLine(centerX - 5, 3, centerX + 5, 3);        g.drawLine(centerX - 5, height - 3, centerX + 5, height - 3);        g.drawLine(centerX, 3, centerX, height - 3);        g.setFont(new Font(Config.getResource("LyricPanel.font"), Font.PLAIN, 14));        g.setColor(Util.getColor(config.getLyricForeground(), config.getLyricHilight()));        Util.drawString(g, s, centerX, (height - Util.getStringHeight(s, g)));    }    public void run() {        while (true) {            try {                Thread.sleep(config.getRefreshInterval());                if (pause) {                    synchronized (lock) {                        lock.wait();                    }                } else {                    if (ly != null) {                        ly.setHeight(this.getHeight());                        ly.setWidth(this.getWidth());                        ly.setTime(player.getTime());                        repaint();                    }                }            } catch (Exception exe) {                exe.printStackTrace();            }        }    }    public void dragEnter(DropTargetDragEvent dtde) {        dtde.acceptDrag(DnDConstants.ACTION_COPY_OR_MOVE);    }    public void dragOver(DropTargetDragEvent dtde) {    }    public void dropActionChanged(DropTargetDragEvent dtde) {    }    public void dragExit(DropTargetEvent dte) {    }    public void drop(DropTargetDropEvent e) {        try {            //得到操作系统的名字,如果是windows,则接受的是DataFlavor.javaFileListFlavor            //如果是linux则接受的是DataFlavor.stringFlavor            String os = System.getProperty("os.name");            if (os.startsWith("Windows")) {                if (e.isDataFlavorSupported(DataFlavor.javaFileListFlavor)) {                    Transferable tr = e.getTransferable();                    e.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);                    @SuppressWarnings("unchecked")                    java.util.List<File> s = (java.util.List<File>) tr.getTransferData(                            DataFlavor.javaFileListFlavor);                    if (s.size() == 1) {                        File f = s.get(0);                        if (f.isFile() && player.getCurrentItem() != null) {                            ly = new Lyric(f, player.getCurrentItem());                            ly.setWidth(this.getWidth());                            ly.setHeight(this.getHeight());                            player.setLyric(ly);                        }                    }                    e.dropComplete(true);                }            } else if (os.startsWith("Linux")) {                if (e.isDataFlavorSupported(DataFlavor.stringFlavor)) {                    e.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);                    Transferable tr = e.getTransferable();                    String[] ss = tr.getTransferData(DataFlavor.stringFlavor).toString().split("\r\n");                    if (ss.length == 1) {                        File f = new File(new URI(ss[0]));                        if (f.isFile() && player.getCurrentItem() != null) {                            ly = new Lyric(f, player.getCurrentItem());                            ly.setWidth(this.getWidth());                            ly.setHeight(this.getHeight());                            player.setLyric(ly);                        }                    }                    e.dropComplete(true);                }            } else {                e.rejectDrop();            }        } catch ( Exception io) {            io.printStackTrace();            e.rejectDrop();        }    }    public void setState(int state) {        if (state == H || state == V) {            this.state = state;        }    }    public void setResized(boolean b) {        isResized = b;    }    public void mouseClicked(MouseEvent e) {//        //双击的时候,改变显示风格//        if (e.getClickCount() == 2) {//            if (state == H) {//                state = V;//            } else {//                state = H;//            }//        }    }    public void mousePressed(MouseEvent e) {        if (ly == null) {            return;        }        if (e.getButton() == MouseEvent.BUTTON1) {            if (area != null && area.contains(e.getPoint())) {                try {                    Desktop.getDesktop().browse(new URI("http://www.blogjava.net/hadeslee"));                } catch (URISyntaxException ex) {                    Logger.getLogger(LyricPanel.class.getName()).log(Level.SEVERE, null, ex);                } catch (IOException ex) {                    Logger.getLogger(LyricPanel.class.getName()).log(Level.SEVERE, null, ex);                }            }            if (ly != null && ly.canMove()) {                isPress = true;                isDrag = false;                if (state == V) {                    start = e.getY();                } else {                    start = e.getX();                }                ly.startMove();            }        }    }    public void mouseReleased(MouseEvent e) {        if (ly == null) {            return;        }        //如果是鼠标左键        if (e.getButton() == MouseEvent.BUTTON1) {            if (ly.canMove() && isDrag) {                if (state == H) {                    end = e.getX();                } else {                    end = e.getY();                }                long time = ly.getTime();                player.setTime(time);                start = end = 0;            }            ly.stopMove();            isPress = false;            isDrag = false;        //如果是鼠标右键        } else if (e.getButton() == MouseEvent.BUTTON3) {            if (player.getCurrentItem() == null) {                return;            }            JPopupMenu pop = new JPopupMenu();            Util.generateLyricMenu(pop, this);            pop.show(this, e.getX(), e.getY());        }    }    /**     * 隐藏自己     */    public void hideMe() {        player.setShowLyric(false);    }    public Lyric getLyric() {        return ly;    }    public void mouseEntered(MouseEvent e) {        if (ly != null && ly.canMove()) {            this.setCursor(new Cursor(Cursor.HAND_CURSOR));        } else {            this.setCursor(Cursor.getDefaultCursor());        }    }    public void mouseExited(MouseEvent e) {        this.setCursor(Cursor.getDefaultCursor());        isOver = false;    }    public void mouseWheelMoved(MouseWheelEvent e) {        if (ly == null) {            return;        }        //只有当配置允许鼠标滚动调整时间才可以        if (config.isMouseScrollAjustTime()) {            int adjust = e.getUnitsToScroll() * 100;//每转动一下,移动300毫秒            ly.adjustTime(adjust);        }    }    public void mouseDragged(MouseEvent e) {        if (ly == null) {            return;        }        if (ly.canMove() && isPress) {            isDrag = true;            if (state == H) {                end = e.getX();            } else {                end = e.getY();            }        }    }    public void mouseMoved(MouseEvent e) {        if (area != null && area.contains(e.getPoint())) {            isOver = true;            this.setCursor(new Cursor(Cursor.HAND_CURSOR));        } else {            isOver = false;            mouseEntered(e);        }    }}

⌨️ 快捷键说明

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