oyoahabuttonborderpool.java
来自「java 开源,Swing外观:JGoodies look & feel. ..」· Java 代码 · 共 708 行 · 第 1/2 页
JAVA
708 行
try { PixelGrabber pg1 = new PixelGrabber(this.enabled, 0, 0, w, h, enabled_source, 0, w); pg1.grabPixels(); } catch(Exception exception) { } source2 = OyoahaPoolUtilities.getColorized(enabled_source, source2, w, h, color, 100); Image[] unselected_enabled = new Image[8]; crop(unselected_enabled, source2, w, h, slices); return unselected_enabled; } protected void init(boolean _enabled, boolean _selected, boolean _rollover, boolean _disabled, boolean _pressed) { if(cached==null) { cached = OyoahaPoolUtilities.getInsets(enabled); } if(!_enabled && !_selected && !_rollover && !_disabled && !_pressed) { return; } int w = this.enabled.getWidth(null); int h = this.enabled.getHeight(null); if(this.selected!=null) { Rectangle[] slices = getSlices(cached, w, h); int[] enabled_source = new int[w * h]; int[] selected_source = new int[w * h]; int[] source2 = new int[w * h]; //colorized version try { PixelGrabber pg1 = new PixelGrabber(this.enabled, 0, 0, w, h, enabled_source, 0, w); pg1.grabPixels(); PixelGrabber pg2 = new PixelGrabber(this.selected, 0, 0, w, h, selected_source, 0, w); pg2.grabPixels(); } catch(Exception exception) { } //enabled if(_enabled) { if(scheme.isCustomEnabledColor()) //colorize if scheme.enable != defaultMetalTheme.enable { source2 = OyoahaPoolUtilities.getColorized(enabled_source, source2, w, h, scheme.getEnabled(), 100); initUEnabled(source2, w, h, slices); } else { initUEnabled(enabled_source, w, h, slices); } if(useEnabledColorForSelected) //selected state must use the same color than enabled { if(scheme.isCustomEnabledColor()) //colorize if scheme.enable != defaultMetalTheme.enable { source2 = OyoahaPoolUtilities.getColorized(selected_source, source2, w, h, scheme.getEnabled(), 100); initSEnabled(source2, w, h, slices); } else { initSEnabled(selected_source, w, h, slices); } } } //selected if(!useEnabledColorForSelected && _selected) { source2 = OyoahaPoolUtilities.getColorized(selected_source, source2, w, h, scheme.getSelected(), 50); initSEnabled(source2, w, h, slices); } //rollover if(_rollover) { source2 = OyoahaPoolUtilities.getColorized(enabled_source, source2, w, h, scheme.getRollover(), 100); initURollover(source2, w, h, slices); source2 = OyoahaPoolUtilities.getColorized(selected_source, source2, w, h, scheme.getRollover(), 100); initSRollover(source2, w, h, slices); } //disabled if(_disabled) { source2 = OyoahaPoolUtilities.getColorized3(enabled_source, source2, w, h, scheme.getEnabled()/*scheme.getDisabled()*/); initUDisabled(source2, w, h, slices); source2 = OyoahaPoolUtilities.getColorized3(selected_source, source2, w, h, scheme.getSelected()/*scheme.getEnabled()*//*scheme.getDisabled()*/); initSDisabled(source2, w, h, slices); } //pressed (selected and unselected use selected image source) if(_pressed) { if(generateUnselectedPressed) { source2 = OyoahaPoolUtilities.getColorized(enabled_source, source2, w, h, scheme.getPressed(), 100); initUPressed(source2, w, h, slices); } else { unselected_pressed = null; } source2 = OyoahaPoolUtilities.getColorized(selected_source, source2, w, h, scheme.getPressed(), 100); initSPressed(source2, w, h, slices); } } else { Rectangle[] slices = getSlices(cached, w, h); int[] enabled_source = new int[w * h]; int[] source2 = new int[w * h]; //colorized version try { PixelGrabber pg1 = new PixelGrabber(this.enabled, 0, 0, w, h, enabled_source, 0, w); pg1.grabPixels(); } catch(Exception exception) { } //enabled if(_enabled) { if(scheme.isCustomEnabledColor()) //colorize if scheme.enable != defaultMetalTheme.enable { source2 = OyoahaPoolUtilities.getColorized(enabled_source, source2, w, h, scheme.getEnabled(), 100); initUEnabled(source2, w, h, slices); } else { initUEnabled(enabled_source, w, h, slices); } } //selected if(!useEnabledColorForSelected && _selected) { source2 = OyoahaPoolUtilities.getColorized(enabled_source, source2, w, h, scheme.getSelected(), 50); initSEnabled(source2, w, h, slices); } //rollover if(_rollover) { source2 = OyoahaPoolUtilities.getColorized(enabled_source, source2, w, h, scheme.getRollover(), 100); initURollover(source2, w, h, slices); } //disabled if(_disabled) { source2 = OyoahaPoolUtilities.getColorized3(enabled_source, source2, w, h, scheme.getEnabled()/*scheme.getDisabled()*/); initUDisabled(source2, w, h, slices); } //pressed (selected and unselected use selected image source) if(_pressed) { if(generateUnselectedPressed) { source2 = OyoahaPoolUtilities.getColorized(enabled_source, source2, w, h, scheme.getPressed(), 100); initUPressed(source2, w, h, slices); } else { unselected_pressed = null; } source2 = OyoahaPoolUtilities.getColorized(enabled_source, source2, w, h, scheme.getPressed(), 100); initSPressed(source2, w, h, slices); } } } protected void initUEnabled(int[] source, int w, int h, Rectangle[] slices) { if (unselected_enabled==null) { unselected_enabled = new Image[8]; } crop(unselected_enabled, source, w, h, slices); } protected void initSEnabled(int[] source, int w, int h, Rectangle[] slices) { if (selected_enabled==null) { selected_enabled = new Image[8]; } crop(selected_enabled, source, w, h, slices); } protected void initURollover(int[] source, int w, int h, Rectangle[] slices) { if (unselected_rollover==null) { unselected_rollover = new Image[8]; } crop(unselected_rollover, source, w, h, slices); } protected void initSRollover(int[] source, int w, int h, Rectangle[] slices) { if (selected_rollover==null) { selected_rollover = new Image[8]; } crop(selected_rollover, source, w, h, slices); } protected void initUPressed(int[] source, int w, int h, Rectangle[] slices) { if (unselected_pressed==null) { unselected_pressed = new Image[8]; } crop(unselected_pressed, source, w, h, slices); } protected void initSPressed(int[] source, int w, int h, Rectangle[] slices) { if (selected_pressed==null) { selected_pressed = new Image[8]; } crop(selected_pressed, source, w, h, slices); } protected void initUDisabled(int[] source, int w, int h, Rectangle[] slices) { if (unselected_disabled==null) { unselected_disabled = new Image[8]; } crop(unselected_disabled, source, w, h, slices); } protected void initSDisabled(int[] source, int w, int h, Rectangle[] slices) { if (selected_disabled==null) { selected_disabled = new Image[8]; } crop(selected_disabled, source, w, h, slices); } protected void crop(Image[] border, int[] source, int w, int h, Rectangle[] slices) { if(slices!=null && slices.length==9) { if(slices[1]!=null) { border[0] = OyoahaPoolUtilities.cropToImage(source, slices[1].x, slices[1].y, slices[1].width, slices[1].height, w, h); } else { border[0] = null; } if(slices[2]!=null) { border[1] = OyoahaPoolUtilities.cropToImage(source, slices[2].x, slices[2].y, slices[2].width, slices[2].height, w, h); } else { border[1] = null; } if(slices[3]!=null) { border[2] = OyoahaPoolUtilities.cropToImage(source, slices[3].x, slices[3].y, slices[3].width, slices[3].height, w, h); } else { border[2] = null; } if(slices[4]!=null) { border[3] = OyoahaPoolUtilities.cropToImage(source, slices[4].x, slices[4].y, slices[4].width, slices[4].height, w, h); } else { border[3] = null; } if(slices[5]!=null) { border[4] = OyoahaPoolUtilities.cropToImage(source, slices[5].x, slices[5].y, slices[5].width, slices[5].height, w, h); } else { border[4] = null; } if(slices[6]!=null) { border[5] = OyoahaPoolUtilities.cropToImage(source, slices[6].x, slices[6].y, slices[6].width, slices[6].height, w, h); } else { border[5] = null; } if(slices[7]!=null) { border[6] = OyoahaPoolUtilities.cropToImage(source, slices[7].x, slices[7].y, slices[7].width, slices[7].height, w, h); } else { border[6] = null; } if(slices[8]!=null) { border[7] = OyoahaPoolUtilities.cropToImage(source, slices[8].x, slices[8].y, slices[8].width, slices[8].height, w, h); } else { border[7] = null; } } }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?