java - 显示 java JTable 中的特定行

标签 java swing jtable rowfilter

我有一个 Java 表,TableModel.each row(element) 有一个 ID。我想显示特定的 ID。如何过滤这些元素?可以更改选定的 ID。

例如:

public class L {
int id;
String name;
String family;
}

//----

private static final String[] columnNames = { "name","family"};
private static final Class[] columnClasses = {class.String.class,String.Class};
private Vector<L> list = Vector<L>();

list.add(new L(1,"A","b"));
.
.
.
list.add(new L(100,"AB","aa");

我想显示具有此 ID 的元素,例如 {1 39 45 55 22}。

如何过滤这些ID?

最佳答案

您可以使用 RowFilter 和 TableRowSorter 来完成此操作:

final int[] ids = new int[]{1, 39, 45, 55, 22};
RowFilter<Object, Object> filter = new RowFilter<Object, Object>() {
  public boolean include(Entry entry) {
    L currentObject = (L) (entry.getValue(0));
    for(int i=0;i<ids.length;i++){
        if(currentObject.getId()==ids[i]){
            return true;
        }
    }
    return false;
  }
};

TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(model);
sorter.setRowFilter(filter);
yourTable.setRowSorter(sorter);

经过测试,它对我有用

希望这有帮助

关于java - 显示 java JTable 中的特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15930063/

相关文章:

java - map nasted 在集合中。获取 2D map 的 value() 集

java - 为什么 revalidate() 和 repaint() 不像我预期的那样工作?

java - Android 将页脚添加到 ListView addFooterView()?

java - 当鼠标在 JTextarea 上移动时,JTextarea 会闪烁

java - 为什么在使用 repaint() 而不是 getParent().repaint() 时会出现此 Swing 错误?

java - 如何在 jtable 单元格中换行?

java - GNU Java 编译器是否支持 JNA?

Java:组件在事件发生后消失

java - JTable 3 字段数组列表

Java JTable 不显示记录