Filter in Tabelle Sql

dior

Bekanntes Mitglied
Hi,
Ich befalle eine Tabelle aus einer Sql Oracle Abfrage.

Kann mir jemand zeigen wie ich jetzt die Ergebnisse Filtern kann?
Ich habe schon alle möglichen Seiten und Beispiele angesehen und Herumprobieren aber ich komme einfach nicht zurecht.

Ich will im Textfeld zu schreiben beginnen und die Tabelle soll entsprechend aktualisiert werden.

Danke im voraus

Java:
package FX;

import java.sql.Connection;
import java.sql.ResultSet;
import javafx.application.Application;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.collections.transformation.FilteredList;
import javafx.collections.transformation.SortedList;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.CheckBox;
import javafx.scene.control.ContextMenu;
import javafx.scene.control.CustomMenuItem;
import javafx.scene.control.Label;
import javafx.scene.control.MenuItem;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.TextField;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Callback;
import static org.openxmlformats.schemas.drawingml.x2006.main.STPercentage.Factory.newValue;


public class TestJavaFXWindow extends Application {

    //TABLE VIEW AND DATA
    private ObservableList<ObservableList> data;
    private TableView tableview;
    private TextField filterField;
    private TableColumn<selectResult, String> FID;
    private TableColumn<selectResult, String> NAME;

    @Override
    public void start(final Stage primaryStage) {
        Button btn = new Button();
        btn.setText("Open a New Window");
        btn.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent event) {
                //TableView
                filterField = new TextField();
                tableview = new TableView();
                buildData();
              //  Label secondLabel = new Label("Hello");

                StackPane secondaryLayout = new StackPane();

                secondaryLayout.getChildren().add(tableview);
             //   secondaryLayout.getChildren().add(secondLabel);
                secondaryLayout.getChildren().add(filterField);

                Scene secondScene = new Scene(secondaryLayout, 1024, 768);

                Stage secondStage = new Stage();
                secondStage.setTitle("Second Stage");
                secondStage.setScene(secondScene);

                //Set position of second window, related to primary window.
                secondStage.setX(primaryStage.getX() + 250);
                secondStage.setY(primaryStage.getY() + 100);

                secondStage.show();
            }
        });

        StackPane root = new StackPane();
        root.getChildren().add(btn);

        Scene scene = new Scene(root, 300, 250);

        primaryStage.setTitle("java-buddy.blogspot.com");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }

    //CONNECTION DATABASE
    public void buildData() {
        Connection c;
        data = FXCollections.observableArrayList();
        try {
            c = Stromobjekte._DB_Connection.getConnection();
            //SQL FOR SELECTING ALL OF CUSTOMER

            String SQL = "SELECT FID, NUM from liste WHERE ID in (605088550,605088781,605088643,605004445,400021214,400021218)";
            //ResultSet
            ResultSet rs = c.createStatement().executeQuery(SQL);
TableColumn col;
            /**
             * ********************************
             * TABLE COLUMN ADDED DYNAMICALLY * ********************************
             */
            for (int i = 0; i < rs.getMetaData().getColumnCount(); i++) {
                //We are using non property style for making dynamic table
                final int j = i;
                 col = new TableColumn(rs.getMetaData().getColumnName(i + 1));
                col.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<ObservableList, String>, ObservableValue<String>>() {
                    public ObservableValue<String> call(TableColumn.CellDataFeatures<ObservableList, String> param) {
                        return new SimpleStringProperty(param.getValue().get(j).toString());
                    }
                });

                tableview.getColumns().addAll(col);
                System.out.println("Column [" + i + "] ");
            }
      
          
      
  /**
             * ******************************
             * Data added to ObservableList * ******************************
             */
 
            while (rs.next()) {
                //Iterate Row
                ObservableList<String> row = FXCollections.observableArrayList();
                for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) {
                    //Iterate Column
                    // row.add(rs.getString(i));
                    Object o = rs.getObject(i);
                    row.add(o == null ? "" : o.toString()); // wenn ein NULL Value gefunden wird, wird dieser durch "" ersetzt
                }
                System.out.println("Row added " + row);
                //System.out.println("Row [fid] " + row.get(3));
                data.add(row);
               
            }

            //FINALLY ADDED TO TableView
            tableview.setItems(data);

            TextField textField = new TextField();


        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("Error on Building Data");
        }
    }

}
 

Joose

Top Contributor
... wenn aktuell auch nur sehr langsam und für kleinere Datenmengen.

Tipp: Dynamisch nachladen ;)
Dein Bildschirm wird dir wahrscheinlich nie alle Datensätze auf einmal anzeigen können, lade daher im ersten Schub nur soviele wie du sehen könntest + einige mehr.
Wenn der User scrollt werden die nächsten X geladen usw.
Vorteil: Es werden auch nur Daten geladen welche dem User auch gezeigt werden. Scrollst du bei einer Liste von 1000 Einträgen nur 100 durch, sind 900 umsonst geladen worden.
Nachteil: Je nach Daten und Umfang der Darstellung kann es hier natürlich zu "Hängern" kommen da das nachladen vielleicht zulange dauert. Hier müsste man eben etwas mehr vorladen um einen gewissen Buffer zu haben, dann wirkt es flüssig.
 

dzim

Top Contributor
Oder So etwas wie den Umfang der Liste zuerst holen und mit Dummies füllen... Würde das etwas bringen? Und dann Jooses Idee folgend die Dumies gegen die echten Daten austauschen, wenn du dort angekommen bist.
In SWT gibt es das Feature der virtuellen Tabellen, das bei grossen Mengen zum Tragen kommt, weiss jetzt nicht genau, wie es bei JavaFX ist.

Beispiele für "JavaFX virtual tableview":
http://stackoverflow.com/questions/33005555/javafx-virtual-table-view
 

dior

Bekanntes Mitglied
Ich habe beim Entwickler von ControlsFX nachgefragt.

I have made some substantial improvements in a pull request this week and overhauled the backing engine to support a high volume of records. I even added listeners for cell value changes.

Feel free to watch (or even use) this PR and it should be in the next release.

https://bitbucket.org/controlsfx/co...r-performance-optimizations/diff#comment-None

Ich werde einfach ein bisschen warten bis ich die neue Version habe. :)

Danke für eure Hilfe
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Filter in die JFace/SWT Tabelle einbauen AWT, Swing, JavaFX & SWT 5
S Swing Tabelle mit Model bei eingeschaltetem Filter synchronisieren AWT, Swing, JavaFX & SWT 6
S JTable Filter nach Wort oder Wortteil über ganze Tabelle AWT, Swing, JavaFX & SWT 5
A Swing Filter-Problem AWT, Swing, JavaFX & SWT 1
D JavaFX Table Filter AWT, Swing, JavaFX & SWT 4
J ComboBox als Filter benutzen AWT, Swing, JavaFX & SWT 1
J Kombinieren von Filter-Optionen für JTable AWT, Swing, JavaFX & SWT 4
C Eclipse Filter-Muster AWT, Swing, JavaFX & SWT 2
B Swing Filter für JTable mit Netbeans Editor AWT, Swing, JavaFX & SWT 2
D Filter für JTable AWT, Swing, JavaFX & SWT 5
M JTable Filter AWT, Swing, JavaFX & SWT 3
C Swing Dynamische JComboBox (Filter) AWT, Swing, JavaFX & SWT 28
jueki Aktuell eingestellten Filter aus einem JFileChooser abfragen. AWT, Swing, JavaFX & SWT 5
M ISelection an Filter übergeben AWT, Swing, JavaFX & SWT 2
L SWT Filter zur TreeViewer hinzufügen AWT, Swing, JavaFX & SWT 9
K JTable wird nicht aktualisiert, wenn Filter gesetzt ist AWT, Swing, JavaFX & SWT 9
E Swing JTree Filter Suche mit Collapse?! AWT, Swing, JavaFX & SWT 4
C JTable Dropdown Filter AWT, Swing, JavaFX & SWT 5
B AWT FileDialog Filter wird ignoriert AWT, Swing, JavaFX & SWT 7
D JTree Filter erstellen AWT, Swing, JavaFX & SWT 4
G Jfilechooser filter AWT, Swing, JavaFX & SWT 10
H FileChooser und Filter AWT, Swing, JavaFX & SWT 4
G Probleme mit JFileChooser und Filter AWT, Swing, JavaFX & SWT 11
G dynamischer Filter bei JTable AWT, Swing, JavaFX & SWT 2
D HSB - Filter AWT, Swing, JavaFX & SWT 3
V Filter im JFileChooser. AWT, Swing, JavaFX & SWT 5
White_Fox Kleine Sub-Tabelle in SpreadsheetView-Zelle anzeigen AWT, Swing, JavaFX & SWT 9
K Tabelle zu Datenbank hinzufügen / Apache Derby AWT, Swing, JavaFX & SWT 7
izoards JavaFX editierbare Tabelle AWT, Swing, JavaFX & SWT 4
HoT Sortieren von ein paar Zeilen in einer Tabelle, aber nicht die ganze Tabelle AWT, Swing, JavaFX & SWT 3
H Tabelle in JFrame einfügen AWT, Swing, JavaFX & SWT 1
T Zelle- und die Zeile-Farbenwechsel bei der Selektion in der Tabelle AWT, Swing, JavaFX & SWT 4
T Anbinden der Tabelle an die Daten AWT, Swing, JavaFX & SWT 5
ralfb1105 JavaFX TreeView dynamisch aus Datenbank Tabelle erstellen AWT, Swing, JavaFX & SWT 22
F JavaFX Tabelle mit Daten füllen AWT, Swing, JavaFX & SWT 9
kodela Swing Letzte Änderung in der Tabelle wird nicht gespeichert AWT, Swing, JavaFX & SWT 5
White_Fox JavaFX Tabelle zeilenweise mit Werten füllen und an Container anpassen AWT, Swing, JavaFX & SWT 23
F JavaFX Tabelle mit gespeicherten Eingabe Werten AWT, Swing, JavaFX & SWT 8
adiko01 JTable: Nur markierte Zeilen aus der Tabelle in CSV exportiern AWT, Swing, JavaFX & SWT 9
B Zeile einer Tabelle selektieren AWT, Swing, JavaFX & SWT 1
A Swing Tabelle wird bei Betätigung des Button nicht befüllt AWT, Swing, JavaFX & SWT 17
L Dynamischer Aufbau einer Tabelle über Objekte AWT, Swing, JavaFX & SWT 2
B Swing Tabelle(JTable) filtern swing GUI AWT, Swing, JavaFX & SWT 3
D Swing JScrollPane Tabelle ändern (2 Tabellen) AWT, Swing, JavaFX & SWT 7
MrSnake Tabelle nach 2 Strings Filtern AWT, Swing, JavaFX & SWT 3
M JavaFX Tabelle flexibler Länge AWT, Swing, JavaFX & SWT 3
T Swing Tabelle mit Button - Anzeigefehler nach Zeile entfernen AWT, Swing, JavaFX & SWT 1
JavaMachtMichFertig JavaFX Gui - Löschbutton in Tabelle anzeigen, die mittels MySQL Abfrage gefüllt wird AWT, Swing, JavaFX & SWT 5
D Swing Breite einer HTML Tabelle in einer JTextPane AWT, Swing, JavaFX & SWT 6
J JavaFX Tabelle soll ganze Seite ausfüllen AWT, Swing, JavaFX & SWT 2
M ausgewählte Inhalt von ListItem inn ComboBox in der Tabelle speichern AWT, Swing, JavaFX & SWT 0
D Swing Eigene Tabelle AWT, Swing, JavaFX & SWT 18
T SWT Mysql Tabelle zeigt immer nur den ersten Wert immer wieder an AWT, Swing, JavaFX & SWT 3
J JavaFX eine Art Tabelle, jedoch mit mehreren Zeilen AWT, Swing, JavaFX & SWT 2
P Swing Klick in Tabelle nicht möglich AWT, Swing, JavaFX & SWT 0
Thallius Swing Tabelle nach Datumsspalte sortieren AWT, Swing, JavaFX & SWT 4
F JavaFX Daten aus Tabelle in ComboBox AWT, Swing, JavaFX & SWT 9
E Tabelle zeigt nicht neuste Datenbankeinträge an AWT, Swing, JavaFX & SWT 5
F SWT Problem mit Tabelle und Combobox in einem Wizard AWT, Swing, JavaFX & SWT 5
D Swing JTable- Meine Tabelle der Klasse JTable wird nur bedingt angezeigt AWT, Swing, JavaFX & SWT 4
O Tabelle "animiert" Scrollen AWT, Swing, JavaFX & SWT 1
R Int aus JSpinner auslesen und Tabelle erstellen AWT, Swing, JavaFX & SWT 3
G JavaFX ComboBoxTableCell für Zuordnung in Tabelle AWT, Swing, JavaFX & SWT 2
B Probleme bei Sortierung einer Tabelle mit DefaultTableModel AWT, Swing, JavaFX & SWT 6
L Tabelle reagiert ungewollt auf Mausklick AWT, Swing, JavaFX & SWT 6
C Verschiebbare "Buttons" in einer Tabelle AWT, Swing, JavaFX & SWT 3
P Listener Auswahl Tabelle AWT, Swing, JavaFX & SWT 6
B LayoutManager Tabelle repainten AWT, Swing, JavaFX & SWT 4
K Swing JTable Text im Hintergrund einer leeren Tabelle AWT, Swing, JavaFX & SWT 3
H JScrollPane - JEditorPane und HTML-Tabelle AWT, Swing, JavaFX & SWT 2
F Elementbezeichnung in der Tabelle AWT, Swing, JavaFX & SWT 7
F Tabelle sortieren AWT, Swing, JavaFX & SWT 3
F SWT Tabelle Zeile auslesen AWT, Swing, JavaFX & SWT 3
T Spaltennamen jeweils der angezeigten Tabelle anpassen AWT, Swing, JavaFX & SWT 19
L Fehler beim erstellen einer Tabelle mithilfe von 2d-Array AWT, Swing, JavaFX & SWT 3
T Swing JScrollPane- und Tabelle-Header Problem AWT, Swing, JavaFX & SWT 25
B Tabelle anpassen AWT, Swing, JavaFX & SWT 6
N jComboBox mit eigenem Renderer und eigenem Datentyp als Rückgabe in einer Tabelle AWT, Swing, JavaFX & SWT 2
N Button akivieren, wenn Tabelle verändert worden ist AWT, Swing, JavaFX & SWT 2
C SWT refresh einer Tabelle AWT, Swing, JavaFX & SWT 4
X Tabelle während Funktionsaufruf aktualisieren AWT, Swing, JavaFX & SWT 11
C SWT Tabelle mit Werten befüllen AWT, Swing, JavaFX & SWT 5
Y LayoutManager Keine vollständige Darstellung der Tabelle mit GridBagLayout AWT, Swing, JavaFX & SWT 3
S Tabelle sortieren, mit Ausnahme der letzten Zeile AWT, Swing, JavaFX & SWT 9
H SWT RAP Anwendung - Tabelle - Theming AWT, Swing, JavaFX & SWT 3
_dp Swing ScrollPane unterschlägt Großteil der Tabelle AWT, Swing, JavaFX & SWT 7
_dp Swing Tabelle: Ausklappbare Einträge AWT, Swing, JavaFX & SWT 2
C Swing Inhalt einer JTable aktualisieren und filten nach Feldern die nicht in der Tabelle sind AWT, Swing, JavaFX & SWT 3
S Tabelle im selben Formular anzeigen AWT, Swing, JavaFX & SWT 6
D Zwei String Attribute über eine Methode als Zeilen in einer Tabelle darstellen AWT, Swing, JavaFX & SWT 9
M Im Frame wird nur die Menüleiste erstellt und nicht die Tabelle? AWT, Swing, JavaFX & SWT 3
A SWT Tabelle (elegant) sortieren AWT, Swing, JavaFX & SWT 2
D Scrollbar für Tabelle AWT, Swing, JavaFX & SWT 2
A Button in Tabelle ansprechen AWT, Swing, JavaFX & SWT 6
O Tabelle laden - Prozessorlast 100% ?? AWT, Swing, JavaFX & SWT 11
F Tabelle und Bildindex (Thumbnails) AWT, Swing, JavaFX & SWT 4
A SWT Tabelle Sortieren AWT, Swing, JavaFX & SWT 3
H Swing Tabelle nach Klick auf Button mit Daten füllen? AWT, Swing, JavaFX & SWT 2
Airwolf89 Swing Exception beim Füllen einer Tabelle AWT, Swing, JavaFX & SWT 10
D Swing Tabelle sortieren AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen


Oben