SortHeaderRenderer.java
上传用户:xiekaiwei
上传日期:2015-07-04
资源大小:620k
文件大小:2k
源码类别:

Telnet客户端

开发平台:

Java

  1. package org.tn5250j.gui;
  2. /*
  3. =====================================================================
  4.   SortHeaderRenderer.java
  5.   Created by Claude Duguay
  6.   Copyright (c) 2002
  7.    This was taken from a Java Pro magazine article
  8.    http://www.fawcette.com/javapro/codepage.asp?loccode=jp0208
  9.    I have NOT asked for permission to use this.
  10. =====================================================================
  11. */
  12. import java.awt.*;
  13. import javax.swing.*;
  14. import javax.swing.table.*;
  15. public class SortHeaderRenderer extends DefaultTableCellRenderer {
  16.    public static Icon NONSORTED =  new SortArrowIcon(SortArrowIcon.NONE);
  17.    public static Icon ASCENDING =  new SortArrowIcon(SortArrowIcon.ASCENDING);
  18.    public static Icon DECENDING =  new SortArrowIcon(SortArrowIcon.DECENDING);
  19.    public SortHeaderRenderer() {
  20.       setHorizontalTextPosition(LEFT);
  21.       setHorizontalAlignment(CENTER);
  22.    }
  23.    public Component getTableCellRendererComponent( JTable table,
  24.                               Object value,
  25.                               boolean isSelected,
  26.                               boolean hasFocus, int row, int col) {
  27.       int index = -1;
  28.       boolean ascending = true;
  29.       if (table instanceof JSortTable) {
  30.          JSortTable sortTable = (JSortTable)table;
  31.          index = sortTable.getSortedColumnIndex();
  32.          ascending = sortTable.isSortedColumnAscending();
  33.       }
  34.       if (table != null) {
  35.          JTableHeader header = table.getTableHeader();
  36.          if (header != null) {
  37.             setForeground(header.getForeground());
  38.             setBackground(header.getBackground());
  39.             setFont(header.getFont());
  40.          }
  41.       }
  42.       Icon icon = ascending ? ASCENDING : DECENDING;
  43.       setIcon(col == index ? icon : NONSORTED);
  44.       setText((value == null) ? "" : value.toString());
  45.       setBorder(UIManager.getBorder("TableHeader.cellBorder"));
  46.       return this;
  47.    }
  48. }