/ / java JTableの特定の行を表示 - java、swing、jtable、rowfilter

JTableの特定の行を表示する - java、swing、jtable、rowfilter

私はJava Tableを持っています 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をどのようにフィルタリングできますか?

回答:

回答№1の場合は3

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);

テストした、それは私のために働く

お役に立てれば