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 + -
显示快捷键?