package filtrartabela;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.RowFilter;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import javax.swing.table.TableRowSorter;
public class JTableFilterDemo_Exemplo1 {
public static void main(String[] args) {
Object[][] data = {{"A", 5}, {"B", 2}, {"C", 4}, {"D", 8}};
String columnNames[] = {"Item", "Value"};
TableModel model = new DefaultTableModel(data, columnNames) {
public Class<?> getColumnClass(int column) {
return getValueAt(0, column).getClass();
}
};
JTable table = new JTable(model);
RowFilter<Object, Object> filter = new RowFilter<Object, Object>() {
public boolean include(Entry entry) {
Integer population = (Integer) entry.getValue(1);
return population.intValue() > 3;
}
};
TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(model);
sorter.setRowFilter(filter);
table.setRowSorter(sorter);
JScrollPane scrollPane = new JScrollPane(table);
JFrame frame = new JFrame("Filtering Table");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(scrollPane);
frame.setSize(300, 200);
frame.setVisible(true);
}
}
Object[][] data = {{"A", 5}, {"B", 2}, {"C", 4}, {"D", 8}};
String columnNames[] = {"Item", "Value"};
TableModel model = new DefaultTableModel(data, columnNames)
private static List<Registro> banco = new ArrayList<Registro>();
public class ComponentesEspeciais {
public void FiltraTabela() {
TableModel model = new DefaultTableModel(new Object[][]{}, new String[]{"Domínio", "Usuário", "Senha"}) {
@Override
public Class<?> getColumnClass(int column) {
return getValueAt(0, column).getClass();
}
};
JTable table = new JTable(model);
// igual ao exemplo -->
RowFilter<Object, Object> filter = new RowFilter<Object, Object>() {
public boolean include(Entry entry) {
Integer population = (Integer) entry.getValue(1);
return population.intValue() > 3;
}
};
TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(model);
sorter.setRowFilter(filter);
table.setRowSorter(sorter);
}
}
TableModel model = new DefaultTableModel(new Object[][]{}, new String[]{"Domínio", "Usuário", "Senha"})
public Principal() {
ComponentesEspeciais tabelaFiltro = new ComponentesEspeciais(); // isso aqui não deu certo mesmo
initComponents(); // inicia os componentes da tabela criada automaticamente pelo netBeans
this.setLocationRelativeTo(null);
this.setVisible(true);
}
Então depois de toda essa explicação onde eu não sei se o meu raciocínio está correto. Eu pergunto:
Como eu posso passar as informações do arrayList (RegistroDAO) para o filtro de (ComponentesEspeciais) e como eu posso chamar essa classe com o metódo filtraTabela() no construtor da classe Principal para que a minha tabelaPrincipal receba os registros filtrados?
(RegistroDAO)<-recebe os dados<-(ComponentesEspeciais)->cria o filtro associado aos registros->(Principal)->mostra tabela + filtro para->[usuário manipular]
