content: package com.client;
  
  import java.awt.Component;
  import java.awt.Graphics;
  import java.awt.Graphics2D;
  import java.awt.RenderingHints;
  import java.awt.image.BufferedImage;
  
  import javax.swing.Icon;
  
  /**
   * Created by wanjian on 2016/11/20.
   */
  
  public class ScaleIcon implements Icon {
  
      private BufferedImage i = null;
      private Icon icon = null;
  
      public ScaleIcon(Icon icon) {
          this.icon = icon;
      }
  
      @Override
      public int getIconHeight() {
          return icon.getIconHeight();
      }
  
      @Override
      public int getIconWidth() {
          return icon.getIconWidth();
      }
  
      public void paintIcon(Component c, Graphics g, int x, int y) {
          float wid = c.getWidth();
          float hei = c.getHeight();
          int iconWid = icon.getIconWidth();
          int iconHei = icon.getIconHeight();
  
          Graphics2D g2d = (Graphics2D) g;
          g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
          g2d.scale(wid / iconWid, hei / iconHei);
          icon.paintIcon(c, g2d, 0, 0);
      }
  
  }