Grazie prima di tutto per le risposte, sempre cortesi e di altissimo livello.
Di seguito la soluzione che alla fine ho adottato:
codice:
//Copio i dati da tabella frame1 alla tabella del frame 2
public void writeTable() {
int B = 9;
for (int row = 0; row <= main.getJTable().getRowCount() - 1; row++) {
for (int col = 0; col <= main.getJTable().getColumnCount(); col++) {
if (main.getJTable().getValueAt(row, 0) != null) {
index = row;
}
String campo1 = (String) main.getJTable().getValueAt(index, 0);
String campo2 = (String) main.getJTable().getValueAt(index, 1);
String campo3 = (String) main.getJTable().getValueAt(index, 2);
ecc.
ecc
table.setValueAt(campo1, index, 0);
table.setValueAt(campo2, index, 1);
table.setValueAt(campo3, index, 2);
ecc.
ecc ..
}
}
}
}
//Dopdiché applico i filtri a piacimento sulla tabella 2 creando un metodo che richiamo alla pressione //di un pulsante seguente modo:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// A e B sono le stringhe catturate da due comboBox
TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(table.getModel());
table.setRowSorter(sorter);
RowFilter<TableModel, Object> firstFilter = null;
RowFilter<TableModel, Object> secondFilter = null;
List<RowFilter<TableModel, Object>> filters = new ArrayList<RowFilter<TableModel, Object>>();
RowFilter<TableModel, Object> compoundRowFilter = null;
try {
firstFilter = RowFilter.regexFilter(A, 0);
secondFilter = RowFilter.regexFilter(B, 1);
filters.add(firstFilter);
filters.add(secondFilter);
compoundRowFilter = RowFilter.andFilter(filters);
} catch (java.util.regex.PatternSyntaxException e) {
return;
}
sorter.setRowFilter(compoundRowFilter);
}
Quindi per riassumere ho prima copiato l'intera tabelle e poi ho applicato i filtri a seconda della stringa selezionata.
Secondo te la soluzione adottata, può essere considerata una buona soluzione?
Auguri per il nuovo anno e grazie ancora per tutto.