📄 skin.java
字号:
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 + -