Filtern von TableView Liste

MiMa

Top Contributor
In meinem Fenster habe ich eine TableView mit zwei Spalten.
Darüber eine Entfernen Schaltfläche und ein Textfeld zum Filtern der Liste.
Die Filterung funktioniert soweit ganz gut.
Filter01.jpgFilter02.jpg Filter03.jpg
Wenn ich jedoch auf die Entfernen Schaltfläche klicke funktioniert die dahinterliegende Operation und löscht den selektierten eintrag.
Nach dem löschen des eintrages wird auch das Filterfeld geleert und die Vollständige Liste wird aktualisiert.
Soweit alles gut.
Wenn ich aber jetzt versuche wieder zu filtern dann funktioniert die Filterung nicht mehr?
Wie kann das sein das es am anfang einmal funktioniert und dann nicht mehr nachdem die entfernen Schaltfläche ausgeführt wurde.

Das ist die Filter-Methode die ich geschrieben habe
Java:
 private void filterMimeListe(String filterText) {
        if (mimeListe == null) {
            return;
        }

        // Erstellen Sie eine finale Referenz auf mimeListe
        final ObservableList<String[]> finalMimeListe = mimeListe;

        // Erstellen Sie eine Instanz von FilteredList
        FilteredList<String[]> filteredList = new FilteredList<>(finalMimeListe);

        // Fügen Sie einen Predicate hinzu, um zu definieren, welche Elemente in der gefilterten Liste angezeigt werden sollen
        filteredList.setPredicate(mimeEintrag -> {
            if (filterText == null || filterText.isEmpty()) {
                // Wenn das Textfeld leer ist, zeigen Sie alle Elemente an
                return true;
            }
            // Überprüfen, ob der MIME-Typ oder die Endung den Suchbegriff enthält
            String mimeType = mimeEintrag[0].toLowerCase();
            String fileExtension = mimeEintrag[1].toLowerCase();
            return mimeType.contains(filterText.toLowerCase()) || fileExtension.contains(filterText.toLowerCase());
        });

        // Setzen Sie die gefilterte Liste als Datenquelle für den TableView
        einstellungenMimeListeTableView.setItems(filteredList);
    } // filterMimeListe

Und das ist die Methode zum löschen des selektierten eintrages
Java:
 @FXML
    void entferneEintragMimeListe(ActionEvent event) {
        System.out.println("Die Liste hat " + mimeListe.size() + " Einträge");

        // Ausgabe der aktuellen Liste auf der Konsole
        System.out.println("Aktuelle MIME-Liste:");
        for (String[] eintrag : mimeListe) {
            System.out.println(Arrays.toString(eintrag));
        }

        // Überprüfen, ob ein Eintrag ausgewählt wurde
        if (einstellungenMimeListeTableView.getSelectionModel().isEmpty()) {
            System.out.println("Kein Eintrag ausgewählt.");
            return;
        }

        // Abrufen des ausgewählten Eintrags
        String[] ausgewaehlterEintrag = einstellungenMimeListeTableView.getSelectionModel().getSelectedItem();
        if (ausgewaehlterEintrag == null) {
            System.out.println("Ausgewählter Eintrag ist null.");
            return;
        }

        // Überprüfen, ob der ausgewählte Eintrag in der Liste vorhanden ist
        boolean gefunden = false;
        for (String[] eintrag : mimeListe) {
            if (Arrays.equals(eintrag, ausgewaehlterEintrag)) {
                gefunden = true;
                break;
            }
        }

        if (!gefunden) {
            System.out.println("Ausgewählter Eintrag ist nicht in der Liste vorhanden.");
            System.out.println("Der ausgewählte Eintrag ist: " + Arrays.toString(ausgewaehlterEintrag));
            return;
        }

        // Entfernen des ausgewählten Eintrags aus der Liste
        mimeListe.remove(ausgewaehlterEintrag);

        // Ausgabe der aktualisierten Liste auf der Konsole
        System.out.println("Aktualisierte MIME-Liste nach Entfernen:");
        for (String[] eintrag : mimeListe) {
            System.out.println(Arrays.toString(eintrag));
        }

        // Aktualisieren der Konfigurationsdatei auf der Festplatte
        Path configFile = Paths.get(System.getProperty("user.home"), "DMS", "mime-zu-endung.properties");
        try {
            List<String> lines = new ArrayList<>();
            for (String[] eintrag : mimeListe) {
                lines.add(String.join("=", eintrag));
            }
            Files.write(configFile, lines);
            System.out.println("Aktualisierte Konfigurationsdatei wurde erfolgreich geschrieben.");
        } catch (IOException e) {
            System.err.println("Fehler beim Schreiben der Konfigurationsdatei: " + e.getMessage());
            e.printStackTrace();
        }

        // Zurücksetzen des Filterfelds auf leeren String und Auslösen eines neuen Filter-Events
        einstellungenDateiMimeFilterTextField.setText("");
//        einstellungenDateiMimeFilterTextField.fireEvent(new ActionEvent());

        // Aktualisieren der Anzeige auf dem JavaFX Application Thread
        Platform.runLater(() -> {
            einstellungenMimeListeTableView.setItems(FXCollections.observableArrayList(mimeListe));
            lblAnzahlMimeEintraege.setText(String.valueOf(mimeListe.size()));
        });
    }

Ich habe in der Löschen Methode das Filter Textfeld schon mit .clear und "" zurückgesetzt aber ein weitere Filtern war nicht
mehr möglich.

Ich würd emich freuen wenn jemand einen Trip hat waran es liegen könnte.

Vielen Dank
 

thecain

Top Contributor
Ich bin jetzt kein JavaFX Profi, aber für mich sieht es so aus als ob du in Zeile 68 die Liste neu setzt..das ist dann keine FilteredList mehr...
 

MiMa

Top Contributor
Vielen Dank für den Hinweis.
Ich habe die Zeile 68 korrigiert und jetzt funktioniert alles wie es soll. ☺️
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Text filtern Allgemeine Java-Themen 1
looparda Liste filtern nach Prädikaten verschiedener Typen Allgemeine Java-Themen 3
S Apache POI Filtern nach bestimmten Kriterium Allgemeine Java-Themen 1
ralfb1105 Blöcke aus Datei filtern/suchen und in neue Datei schreiben Allgemeine Java-Themen 10
N Streams wann .filtern? Allgemeine Java-Themen 2
B DomParser - Element filtern Allgemeine Java-Themen 4
N Java stream filtern. Allgemeine Java-Themen 19
J Jsoup Filtern Allgemeine Java-Themen 5
OlafHD Java Sätze filtern Allgemeine Java-Themen 1
N JTable filtern Allgemeine Java-Themen 3
H Speziellen Wert aus String filtern Allgemeine Java-Themen 4
F Medien filtern Allgemeine Java-Themen 4
J String filtern / XML-Code extrahieren Allgemeine Java-Themen 4
X Java String Regex - Sonderzeichen Filtern Allgemeine Java-Themen 5
J Zeichenketten-Liste filtern Allgemeine Java-Themen 6
S Eine Collection von Objekten mit LDAP Syntax filtern Allgemeine Java-Themen 5
D große Textdatei filtern Allgemeine Java-Themen 13
S Koordinaten aus einem Text filtern Allgemeine Java-Themen 11
M Nach bestimmter Namenskonvention filtern Allgemeine Java-Themen 2
J ArrayList Objekte anhand Propertywerte filtern Allgemeine Java-Themen 3
M Dateiinhalt filtern Allgemeine Java-Themen 9
S eine ip-adresse aus einem String filtern Allgemeine Java-Themen 5
N Array mit null Werten filtern Allgemeine Java-Themen 5
S 20.000 File filtern Allgemeine Java-Themen 11
G mit Pattern strings filtern ein kleines problemchen ;) Allgemeine Java-Themen 2
W Dateien filtern Allgemeine Java-Themen 7
märliprinz Sortieren und Filtern von Funktionen/Methoden Allgemeine Java-Themen 4
L In JTable Zeilen n. selben Dateninhalt filtern & ausgebe Allgemeine Java-Themen 16
M List -Tableview-Javafx-Vererbung Allgemeine Java-Themen 35
E TableView Probleme Allgemeine Java-Themen 7
Fynn29 Liste sortieren ohne Array und ohne vorgegebene Sortierung Allgemeine Java-Themen 24
B Liste aller Kombintionen mit Einschränkungen Allgemeine Java-Themen 8
TheSepp Wie kann man Leerzeichen aus einer Array liste entfernen? Allgemeine Java-Themen 10
B Liste ändern während Iteration über Diese? Allgemeine Java-Themen 16
D Erste Schritte Liste erweitern Allgemeine Java-Themen 11
sserio Variablen Liste erstellt und ein Problem mit dem Index Allgemeine Java-Themen 6
L allgemein Strings händisch in Liste sortieren Allgemeine Java-Themen 47
M einfach verkettete Liste verstehen Allgemeine Java-Themen 23
Drachenbauer wie kann ich alle instanzen einer Klasse durchsehen, ohne, dass diese in einer Liste erzeugt wurden? Allgemeine Java-Themen 11
Gaudimagspam Skip Liste erstellen in Java Allgemeine Java-Themen 3
G Java Editor Löschen doppelter Zahlen einer Liste Allgemeine Java-Themen 2
bueseb84 Spring Boot Entity mit Liste Allgemeine Java-Themen 4
MiMa Werte in liste speichern? Allgemeine Java-Themen 3
Curtis_MC Collections Liste anhand mehrere Kriterien sortieren Allgemeine Java-Themen 6
K verkettete Liste Allgemeine Java-Themen 3
G Liste (UsageStats) sortieren (Android) Allgemeine Java-Themen 5
T Google Links in einer Liste Allgemeine Java-Themen 4
OSchriever Einfach verkettete Liste ändern Allgemeine Java-Themen 43
L Liste überschreibt alte Elemte Allgemeine Java-Themen 10
H Länge einer verketteten Liste Allgemeine Java-Themen 4
E Erstellen einer Liste mit einer maximalen Menge an Elementen Allgemeine Java-Themen 13
P Element einer Liste wurde hinzugefügt, aber es gibt keinen Zugriff Allgemeine Java-Themen 2
S Methoden Liste soll Methode aus innerer Klasse aufrufen Allgemeine Java-Themen 4
L Erste Schritte Liste von Datums filter nach Monate Allgemeine Java-Themen 4
Y Liste in Stream Packen Allgemeine Java-Themen 1
K Einfache Verkettete Liste mit Node Allgemeine Java-Themen 3
perlenfischer1984 Reflection : Element in generische Liste hinzufügen Allgemeine Java-Themen 4
perlenfischer1984 Liste mit generics zurück liefern Allgemeine Java-Themen 8
S Verkettete (Teil)Liste sortieren ( rekursiv bis n) Allgemeine Java-Themen 2
G Liste zwischen zwei Kalenderdaten erstellen Allgemeine Java-Themen 3
B Wie vergleiche ich Strings in einer Liste? Allgemeine Java-Themen 5
Viktim Threads Liste In unterschiedlichen Threads bearbeiten Allgemeine Java-Themen 23
A Collections Inhalt einer Liste mit Inhalt anderer Liste vergleichen ? Allgemeine Java-Themen 7
I Abstrakte Datentypen - Liste Allgemeine Java-Themen 9
D Datentypen Klassenattribut aus Objekt in generischer Liste Allgemeine Java-Themen 15
P Liste zu Objekt umwandeln Allgemeine Java-Themen 4
Z In die Liste kann ich nichts adden Allgemeine Java-Themen 16
C Liste checken auf MINDESTENS ein Objekt | Bukkit Allgemeine Java-Themen 3
M liste von listen anders ausgeben Allgemeine Java-Themen 1
B Per Buttonklicks einer Liste Wörter hinzufügen - Wie umsetzen? Allgemeine Java-Themen 11
H Liste sortieren anhand optionalem Property Allgemeine Java-Themen 3
L Liste führt sich nicht weiter Allgemeine Java-Themen 5
A Input/Output Liste der Dateien in einem Ordner in einer Jar Datei erhalten Allgemeine Java-Themen 11
J Fragen zu generischer doppelt verketteter Liste (bei fehlendem Grundverständnis) Allgemeine Java-Themen 1
B Prüfen, ob ein Element in der Liste nicht existiert Allgemeine Java-Themen 3
B Klassen JTable mit einer Liste Allgemeine Java-Themen 0
X HTTP Auslesen der Ergebnisse von einer Webseite und in eine Liste packen Allgemeine Java-Themen 1
A Auslesen einer Datei sowie ausgeben als Liste in App Allgemeine Java-Themen 5
E Liste löscht sich selbstständig Allgemeine Java-Themen 5
H Liste von Objekten generisch sortieren Allgemeine Java-Themen 0
D Liste anhand Standardnormalverteilung befüllen Allgemeine Java-Themen 1
M Threads synchroner Zugriff (add/delete/read) auf eine Liste Allgemeine Java-Themen 6
T Datentypen Eine Liste - verschiedenen Klassen - eine Abstracte Klasse Allgemeine Java-Themen 3
M Werte aus DB in Liste speichern ohne mehrfach speicherung Allgemeine Java-Themen 18
G Liste anzahl der gleichen Objekte Allgemeine Java-Themen 6
S Pattern.Match Suche: For Schleife einbinden und in Liste schreiben Allgemeine Java-Themen 3
O aus Liste ein beliebiges Element auswählen Allgemeine Java-Themen 7
J Liste aller Com-Ports - zweistellige Ports? Allgemeine Java-Themen 15
O MVC - wo Liste der ComboBox-Items ermitteln Allgemeine Java-Themen 3
MiMa Liste von Pfaden in eine textArea schreiben Allgemeine Java-Themen 7
K kontinuierlich aktuelle Bestellsystem-Liste mit farbigem Status Allgemeine Java-Themen 2
A Auswählbare Liste Allgemeine Java-Themen 2
D Sortieren von Liste zu unperformant Allgemeine Java-Themen 6
N Liste gesucht Allgemeine Java-Themen 2
Z Sortiertes Einfügen in doppelt verkettete Liste Allgemeine Java-Themen 5
S Probleme beim Auslesen einer Liste Allgemeine Java-Themen 8
O JSON String bauen aus Liste Allgemeine Java-Themen 2
M Über Liste verschiendene JComponents mit eigenem implementierten Interface ansprechen Allgemeine Java-Themen 7
T Hashmap mit geordneter/ungeordneter liste als Value Allgemeine Java-Themen 5
D Zugriff auf Array-Liste Allgemeine Java-Themen 19

Ähnliche Java Themen


Oben