code: @Override
      public Icon getIcon(JTable table, int column) {
          float computedAlpha = 1.0F;
          for (RowSorter.SortKey sortKey : table.getRowSorter().getSortKeys()) {
              if (table.convertColumnIndexToView(sortKey.getColumn()) == column) {
                  switch (sortKey.getSortOrder()) {
                      case ASCENDING:
                          return new AlphaIcon(UIManager.getIcon("Table.ascendingSortIcon"), computedAlpha);
                      case DESCENDING:
                          return new AlphaIcon(UIManager.getIcon("Table.descendingSortIcon"), computedAlpha);
                          
                      default:
                          // Just to remove unmatched case warning
                  }
              }
              computedAlpha *= alpha;
          }
          return null;
      }
docs: Overridden to return an icon suitable to a sorted column, or null if the
  column is unsorted. The icon for the primary sorted column is fully
  opaque, and the opacity is reduced by a factor of
  <code>alpha</code> for each subsequent sort index.
  
  @param table the <code>JTable</code>.
  @param column the column index.
  @return the sort icon with appropriate opacity, or null if the column is
  unsorted.