ie Schaltfläche zum Filtern von JTable für das Kontrollkästchen ist ausgewähl
Ich habe eine JTable, die dieser ziemlich ähnlich ist.
http: //docs.oracle.com/javase/tutorial/uiswing/components/table.html#sortin
Ich habe es geschafft, einen normalen Filter darauf zu setzen (eine Suchfunktion) und es funktioniert gut. Ich möchte eine Schaltfläche, die sofort nur die Zeilen anzeigt, in denen Vegetarisch aktiviert ist.
Ok also jetzt dank der Hilfe von @peeskillet und @HovercraftFullOfEels ist dies die Lösung für mein Problem:
final TableRowSorter<MovieReviewTableModel> rowSorter = new TableRowSorter<MovieReviewTableModel>(tableModel);
// custom RowFilter
RowFilter<MovieReviewTableModel, Integer> filter = new RowFilter<MovieReviewTableModel, Integer>()
{
// include method returns true to show the row and false to not show it
@Override
public boolean include(RowFilter.Entry<? extends MovieReviewTableModel, ? extends Integer> entry)
{
int modelRow = entry.getIdentifier(); //row index
boolean checked = ((Boolean)entry.getModel().getValueAt(modelRow, 3)).booleanValue();
System.out.println(checked); // to test the values coming through
return checked;
}
};
table.setRowSorter(rowSorter);
JButton onlyFeatured = new JButton("Only show Featured");
threeButtonPanel.add(onlyFeatured);
onlyFeatured.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
rowSorter.setRowFilter(filter);
}
});
Es klappt! Vielen Dank Jungs, ich schulde dir was zu trinken oder so. : D