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

📄 skin.java

📁 java平台的图形音乐播放器
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
        try
        {
            loadSkin(skl);
            path = skinName;
        }
        catch (Exception e)
        {
            log.info("Can't load skin : ", e);
            InputStream sis = this.getClass().getClassLoader().getResourceAsStream("javazoom/jlgui/player/amp/metrix.wsz");
            log.info("Load default skin for JAR");
            loadSkin(sis);
        }
    }

    /**
     * Loads a new skin from any input stream.
     * @param skinStream
     */
    public void loadSkin(InputStream skinStream)
    {
        SkinLoader skl = new SkinLoader(skinStream);
        try
        {
            loadSkin(skl);
        }
        catch (Exception e)
        {
            log.info("Can't load skin : ", e);
            InputStream sis = this.getClass().getClassLoader().getResourceAsStream("javazoom/jlgui/player/amp/metrix.wsz");
            log.info("Load default skin for JAR");
            loadSkin(sis);
        }
    }

    /**
     * Loads a skin from a SkinLoader.
     * @param skl
     * @throws Exception
     */
    public void loadSkin(SkinLoader skl) throws Exception
    {
        skl.loadImages();
        imMain = skl.getImage(theMain);
        imButtons = skl.getImage(theButtons);
        imTitleBar = skl.getImage(theTitleBar);
        imText = skl.getImage(theText);
        imMode = skl.getImage(theMode);
        imNumbers = skl.getImage(theNumbers);
        // add by John Yang
        if (imNumbers == null)
        {
            log.debug("Try load nums_ex.bmp !");
            imNumbers = skl.getImage(theNumEx);
        }
        imVolume = skl.getImage(theVolume);
        imBalance = skl.getImage(theBalance);
        imIcons = skl.getImage(theIcons);
        imPosBar = skl.getImage(thePosBar);
        imEPSRButtons = skl.getImage(theEPSRButtons);
        viscolor = (String) skl.getContent(theViscolor);
        String readmeStr = theReadme;
        readme = (String) skl.getContent(readmeStr);
        if (readme == null)
        {
            readmeStr = readmeStr.toUpperCase();
            readme = (String) skl.getContent(readmeStr);
        }
        if (readme == null)
        {
            readmeStr = readmeStr.substring(0, 1) + theReadme.substring(1, theReadme.length());
            readme = (String) skl.getContent(readmeStr);
        }
        // Computes volume slider height :
        int vh = (imVolume.getHeight(null) - 422);
        if (vh > 0)
        {
            releasedVolumePanel0[3] = vh;
            pressedVolumePanel0[3] = vh;
            releasedVolumePanel1[3] = vh;
            pressedVolumePanel1[3] = vh;
        }
        // Computes balance slider height :
        if (imBalance == null) imBalance = imVolume;
        int bh = (imBalance.getHeight(null) - 422);
        if (bh > 0)
        {
            releasedBalancePanel0[3] = bh;
            pressedBalancePanel0[3] = bh;
            releasedBalancePanel1[3] = bh;
            pressedBalancePanel1[3] = bh;
        }
        // Compute posbar height.
        int ph = imPosBar.getHeight(null);
        if (ph > 0)
        {
            releasedPosPanel[3] = ph;
            pressedPosPanel[3] = ph;
        }
        WinHeight = imMain.getHeight(null); // 116
        WinWidth = imMain.getWidth(null); // 275
        /*-- Text --*/
        acFont = new ActiveFont(imText, fontIndex, fontWidth, fontHeight);
        acTitleLabel = new ActiveJLabel();
        acTitleLabel.setAcFont(acFont);
        acTitleLabel.setCropRectangle(new Rectangle(0, 0, 155, 6));
        acTitleLabel.setConstraints(new AbsoluteConstraints(titleLocation[0], titleLocation[1], 155, 6));
        acTitleLabel.setAcText(TITLETEXT.toUpperCase());
        acSampleRateLabel = new ActiveJLabel();
        acSampleRateLabel.setAcFont(acFont);
        acSampleRateLabel.setConstraints(new AbsoluteConstraints(sampleRateLocation[0], sampleRateLocation[1]));
        acSampleRateLabel.setAcText(sampleRateClearText);
        acBitRateLabel = new ActiveJLabel();
        acBitRateLabel.setAcFont(acFont);
        acBitRateLabel.setConstraints(new AbsoluteConstraints(bitsRateLocation[0], bitsRateLocation[1]));
        acBitRateLabel.setAcText(bitsRateClearText);
        /*-- Buttons --*/
        readPanel(releasedImage, releasedPanel, pressedImage, pressedPanel, imButtons);
        setButtonsPanel();
        /*-- Volume/Balance --*/
        if (skinVersion.equals("1"))
        {
            readPanel(releasedVolumeImage, releasedVolumePanel0, pressedVolumeImage, pressedVolumePanel0, imVolume);
            readPanel(releasedBalanceImage, releasedBalancePanel0, pressedBalanceImage, pressedBalancePanel0, imBalance);
        }
        else
        {
            readPanel(releasedVolumeImage, releasedVolumePanel1, pressedVolumeImage, pressedVolumePanel1, imVolume);
            readPanel(releasedBalanceImage, releasedBalancePanel1, pressedBalanceImage, pressedBalancePanel1, imBalance);
        }
        setVolumeBalancePanel(vh, bh);
        /*-- Title Bar --*/
        readPanel(releasedTitleIm, releasedTitlePanel, pressedTitleIm, pressedTitlePanel, imTitleBar);
        setTitleBarPanel();
        /*-- Exit --*/
        readPanel(releasedExitIm, releasedExitPanel, pressedExitIm, pressedExitPanel, imTitleBar);
        setExitPanel();
        /*-- Minimize --*/
        readPanel(releasedMinimizeIm, releasedMinimizePanel, pressedMinimizeIm, pressedMinimizePanel, imTitleBar);
        setMinimizePanel();
        /*-- Mode --*/
        readPanel(activeModeImage, activeModePanel, passiveModeImage, passiveModePanel, imMode);
        setMonoStereoPanel();
        /*-- Numbers --*/
        ImageIcon[] numbers = new ImageIcon[numberIndex.length()];
        for (int h = 0; h < numberIndex.length(); h++)
        {
            numbers[h] = new ImageIcon((new Taftb(numberIndex, imNumbers, numberWidth, numberHeight, 0, "" + numberIndex.charAt(h))).getBanner());
        }
        acMinuteH = new ActiveJNumberLabel();
        acMinuteH.setNumbers(numbers);
        acMinuteH.setConstraints(new AbsoluteConstraints(minuteHLocation[0], minuteHLocation[1]));
        acMinuteH.setAcText(" ");
        acMinuteL = new ActiveJNumberLabel();
        acMinuteL.setNumbers(numbers);
        acMinuteL.setConstraints(new AbsoluteConstraints(minuteLLocation[0], minuteLLocation[1]));
        acMinuteL.setAcText(" ");
        acSecondH = new ActiveJNumberLabel();
        acSecondH.setNumbers(numbers);
        acSecondH.setConstraints(new AbsoluteConstraints(secondHLocation[0], secondHLocation[1]));
        acSecondH.setAcText(" ");
        acSecondL = new ActiveJNumberLabel();
        acSecondL.setNumbers(numbers);
        acSecondL.setConstraints(new AbsoluteConstraints(secondLLocation[0], secondLLocation[1]));
        acSecondL.setAcText(" ");
        /*--  Icons --*/
        readPanel(iconsImage, iconsPanel, null, null, imIcons);
        acPlayIcon = new ActiveJIcon();
        ImageIcon[] playIcons = { new ImageIcon(iconsImage[0]), new ImageIcon(iconsImage[1]), new ImageIcon(iconsImage[2]) };
        acPlayIcon.setIcons(playIcons);
        acPlayIcon.setConstraints(new AbsoluteConstraints(iconsLocation[0], iconsLocation[1]));
        acPlayIcon.setIcon(2);
        acTimeIcon = new ActiveJIcon();
        ImageIcon[] timeIcons = { new ImageIcon(iconsImage[3]), new ImageIcon(iconsImage[4]) };
        acTimeIcon.setIcons(timeIcons);
        acTimeIcon.setConstraints(new AbsoluteConstraints(iconsLocation[2], iconsLocation[3]));
        /*-- DSP --*/
        setAnalyzerPanel();
        /*-- Pos Bar --*/
        readPanel(releasedPosIm, releasedPosPanel, pressedPosIm, pressedPosPanel, imPosBar);
        setPosBarPanel();
        /*-- EqualizerUI/Playlist/Shuffle/Repeat  --*/
        readPanel(releasedEPSRImage, releasedEPSRPanel, pressedEPSRImage, pressedEPSRPanel, imEPSRButtons);
        setEPSRButtonsPanel();
        /*-- EqualizerUI --*/
        imFullEqualizer = skl.getImage("eqmain.bmp");
        imEqualizer = new BufferedImage(WinWidth, WinHeight, BufferedImage.TYPE_INT_RGB);
        imEqualizer.getGraphics().drawImage(imFullEqualizer, 0, 0, null);
        imSliders = new BufferedImage(208, 128, BufferedImage.TYPE_INT_RGB);
        imSliders.getGraphics().drawImage(imFullEqualizer, 0, 0, 208, 128, 13, 164, 13 + 208, 164 + 128, null);
        setSliderPanel();
        setOnOffAutoPanel();
        setPresetsPanel();
        setSplinePanel();
        /*-- Playlist --*/
        imPlaylist = skl.getImage("pledit.bmp");
        plEdit = (String) skl.getContent("pledit.txt");
        setPlaylistPanel();
    }

    /**
     * Instantiate Buttons Panel with ActiveComponent.
     */
    private void setButtonsPanel()
    {
        int l = 0;
        acPrevious = new ActiveJButton();
        acPrevious.setIcon(new ImageIcon(releasedImage[0]));
        acPrevious.setPressedIcon(new ImageIcon(pressedImage[0]));
        acPrevious.setConstraints(new AbsoluteConstraints(panelLocation[l++], panelLocation[l++], releasedImage[0].getWidth(null), releasedImage[0].getHeight(null)));
        acPrevious.setToolTipText(getResource("button.previous"));
        acPrevious.setActionCommand(PlayerActionEvent.ACPREVIOUS);
        acPlay = new ActiveJButton();
        acPlay.setIcon(new ImageIcon(releasedImage[1]));
        acPlay.setPressedIcon(new ImageIcon(pressedImage[1]));
        acPlay.setConstraints(new AbsoluteConstraints(panelLocation[l++], panelLocation[l++], releasedImage[1].getWidth(null), releasedImage[1].getHeight(null)));
        acPlay.setToolTipText(getResource("button.play"));
        acPlay.setActionCommand(PlayerActionEvent.ACPLAY);
        acPause = new ActiveJButton();
        acPause.setIcon(new ImageIcon(releasedImage[2]));
        acPause.setPressedIcon(new ImageIcon(pressedImage[2]));
        acPause.setConstraints(new AbsoluteConstraints(panelLocation[l++], panelLocation[l++], releasedImage[2].getWidth(null), releasedImage[2].getHeight(null)));
        acPause.setToolTipText(getResource("button.pause"));
        acPause.setActionCommand(PlayerActionEvent.ACPAUSE);
        acStop = new ActiveJButton();
        acStop.setIcon(new ImageIcon(releasedImage[3]));
        acStop.setPressedIcon(new ImageIcon(pressedImage[3]));
        acStop.setConstraints(new AbsoluteConstraints(panelLocation[l++], panelLocation[l++], releasedImage[3].getWidth(null), releasedImage[3].getHeight(null)));
        acStop.setToolTipText(getResource("button.stop"));
        acStop.setActionCommand(PlayerActionEvent.ACSTOP);
        acNext = new ActiveJButton();
        acNext.setIcon(new ImageIcon(releasedImage[4]));
        acNext.setPressedIcon(new ImageIcon(pressedImage[4]));
        acNext.setConstraints(new AbsoluteConstraints(panelLocation[l++], panelLocation[l++], releasedImage[4].getWidth(null), releasedImage[4].getHeight(null)));
        acNext.setToolTipText(getResource("button.next"));
        acNext.setActionCommand(PlayerActionEvent.ACNEXT);
        acEject = new ActiveJButton();
        acEject.setIcon(new ImageIcon(releasedImage[5]));
        acEject.setPressedIcon(new ImageIcon(pressedImage[5]));
        acEject.setConstraints(new AbsoluteConstraints(panelLocation[l++], panelLocation[l++], releasedImage[5].getWidth(null), releasedImage[5].getHeight(null)));
        acEject.setToolTipText(getResource("button.eject"));
        acEject.setActionCommand(PlayerActionEvent.ACEJECT);
    }

    /**
     * Instantiate EPSR Buttons Panel with ActiveComponent.
     * imEqualizer, imPlaylist, imShuffle, imRepeat
     */
    private void setEPSRButtonsPanel()
    {
        int l = 0;
        acEqualizer = new ActiveJToggleButton();
        acEqualizer.setIcon(new ImageIcon(releasedEPSRImage[0]));
        acEqualizer.setSelectedIcon(new ImageIcon(pressedEPSRImage[0]));
        acEqualizer.setPressedIcon(new ImageIcon(pressedEPSRImage[0]));
        acEqualizer.setConstraints(new AbsoluteConstraints(panelEPSRLocation[l++], panelEPSRLocation[l++], releasedEPSRImage[0].getWidth(null), releasedEPSRImage[0].getHeight(null)));
        acEqualizer.setToolTipText(getResource("toggle.equalizer"));
        acEqualizer.setActionCommand(PlayerActionEvent.ACEQUALIZER);
        acEqualizer.setSelected(config.isEqualizerEnabled());
        acPlaylist = new ActiveJToggleButton();
        acPlaylist.setIcon(new ImageIcon(releasedEPSRImage[1]));
        acPlaylist.setSelectedIcon(new ImageIcon(pressedEPSRImage[1]));
        acPlaylist.setPressedIcon(new ImageIcon(pressedEPSRImage[1]));
        acPlaylist.setConstraints(new AbsoluteConstraints(panelEPSRLocation[l++], panelEPSRLocation[l++], releasedEPSRImage[1].getWidth(null), releasedEPSRImage[1].getHeight(null)));
        acPlaylist.setToolTipText(getResource("toggle.playlist"));
        acPlaylist.setActionCommand(PlayerActionEvent.ACPLAYLIST);
        acPlaylist.setSelected(config.isPlaylistEnabled());
        acShuffle = new ActiveJToggleButton();
        acShuffle.setIcon(new ImageIcon(releasedEPSRImage[2]));
        acShuffle.setSelectedIcon(new ImageIcon(pressedEPSRImage[2]));
        acShuffle.setPressedIcon(new ImageIcon(pressedEPSRImage[2]));
        acShuffle.setConstraints(new AbsoluteConstraints(panelEPSRLocation[l++], panelEPSRLocation[l++], releasedEPSRImage[2].getWidth(null), releasedEPSRImage[2].getHeight(null)));
        acShuffle.setToolTipText(getResource("toggle.shuffle"));
        acShuffle.setActionCommand(PlayerActionEvent.ACSHUFFLE);
        acShuffle.setSelected(config.isShuffleEnabled());
        acRepeat = new ActiveJToggleButton();
        acRepeat.setIcon(new ImageIcon(releasedEPSRImage[3]));
        acRepeat.setSelectedIcon(new ImageIcon(pressedEPSRImage[3]));
        acRepeat.setPressedIcon(new ImageIcon(pressedEPSRImage[3]));
        acRepeat.setConstraints(new AbsoluteConstraints(panelEPSRLocation[l++], panelEPSRLocation[l++], releasedEPSRImage[3].getWidth(null), releasedEPSRImage[3].getHeight(null)));
        acRepeat.setToolTipText(getResource("toggle.repeat"));
        acRepeat.setActionCommand(PlayerActionEvent.ACREPEAT);
        acRepeat.setSelected(config.isRepeatEnabled());
    }

    /**
     * Instantiate Volume/Balance Panel with ActiveComponent.
     * @param vheight
     * @param bheight
     */
    private void setVolumeBalancePanel(int vheight, int bheight)
    {
        // Volume.
        acVolume = new ActiveJSlider();
        acVolume.setMinimum(0);
        acVolume.setMaximum(VOLUMEMAX);
        int volumeValue = config.getVolume();
        if (volumeValue < 0) volumeValue = (int) VOLUMEMAX / 2;
        acVolume.setValue(volumeValue);
        acVolume.setToolTipText(getResource("slider.volume"));

⌨️ 快捷键说明

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