⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sortabletablemodel.java

📁 JR 公共类库 --Java研究组织开源子项目 本项目的发起的初衷是丰富和完善java的类库
💻 JAVA
字号:
package org.jr.swing.table;

/**
 * <p>Copyright: Copyright (c) 2002-2003</p>
 * <p>Company: JavaResearch(http://www.javaresearch.org)</p>
 * <p>最后更新日期:2003年3月2日
 * @author Cherami
 */

import javax.swing.table.*;

import org.jr.util.*;

/**
 * 可以排序表格模型。
 * @since  0.1
 */

public class SortableTableModel
    extends DefaultTableModel {
  int[] indexes;
  TableSorter sorter;
  /**
   * 构造一个SortableTableModel。
   * @since  0.1
   */
  public SortableTableModel() {
  }

  /**
   * 得到排序后的表格单元的值。
   * @param row 行
   * @param col 列
   * @return 得到排序后的表格单元的值。
   * @since  0.1
   */
  public Object getValueAt(int row, int col) {
    int rowIndex = row;
    if (indexes != null) {
      rowIndex = indexes[row];
    }
    return super.getValueAt(rowIndex, col);
  }

  /**
   * 设置表格单元的值。
   * @param value 表格单元的值
   * @param row 行
   * @param col 列
   * @since  0.1
   */
  public void setValueAt(Object value, int row, int col) {
    int rowIndex = row;
    if (indexes != null) {
      rowIndex = indexes[row];
    }
    super.setValueAt(value, rowIndex, col);
  }

  /**
   * 按列排序。
   * @param column 要排序的列
   * @param isAscent 排序方式
   * @since  0.1
   */
  public void sortByColumn(int column, boolean isAscent) {
    if (sorter == null) {
      sorter = new TableSorter(this);
    }
    sorter.sort(column, isAscent);
    fireTableDataChanged();
  }

  /**
   * 得到排序后的索引数组。
   * @return 排序后的索引数组
   * @since  0.1
   */
  public int[] getIndexes() {
    int n = getRowCount();
    if (indexes != null) {
      return indexes;
    }
    else {
      return ArrayUtil.getInitedIntArray(n);
    }
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -