Hallo zusammen,
ich habe mal eine Frage zu einem TableView und den TableColumn in JavaFX.
Ich habe in meinem, vermutlich schon bei einigen bestens bekannt, Projekt bisher Tabellen erstellt von denen ich vorher wusste wie das Layout aussieht. Dazu habe ich dann eine Klasse erstellt von denen ich dann Objekte erstelle die ich über eine "ObservableList<LogKeyValues>" mit Daten fülle. Das funktioniert soweit ganz gut.
Nun stehe ich vor der Herausforderung das ich eine Tabelle erstellen möchte von der ich das Spalten Layout nicht kenne.
Hintergrund:
Ich gebe dem User der Applikation ein Eingabefeld in das er ein JDBC select Statement eintragen kann, welches dann ausgeführt wird. Das Ergebnis, sprich das ResultSet, gebe ich momentan in einer TextArea aus, was natürlich nicht so schön aussieht.
Da ich vorher nicht weiß welches select der User absetzt, und ich somit keine vordefinierte Tabelle oder Objekt Klasse erstellen kann, habe ich mir überlegt ob es möglich ist das ich quasi "on the fly" die Tabellen Spalten erstellen kann und dann die Ergebnisse des ResultSet (String) in einer ObservableList<String> speichere und dann am Ende damit die Tabelle fülle und anzeige.
Frage:
Ist dieser Gedanke vollkommen abwägig oder ist so etwas mit JavaFX machbar?
Wenn ja, wie wären dann die groben Schritte.
1. TableView erstellen - in der Controller Klasse bei der Initialisierung
2. TableColumn aus ResultSetMetaData.getColumnName() erstellen. Ist das z.B. in einem Service Task möglich??? Ich arbeite mit Scene Builder und mir ist nicht ganz klar wie das zu realisieren wäre ??
3. CellFactory auf TableColumns erstellen --> col1.setCellFactory(new PropertyValueFactory...)
4. ObservableList<String> mit Daten aus ResultSet.next() füllen.
Bin für jeden Input dankbar.
Gruß
Ralf
ich habe mal eine Frage zu einem TableView und den TableColumn in JavaFX.
Ich habe in meinem, vermutlich schon bei einigen bestens bekannt, Projekt bisher Tabellen erstellt von denen ich vorher wusste wie das Layout aussieht. Dazu habe ich dann eine Klasse erstellt von denen ich dann Objekte erstelle die ich über eine "ObservableList<LogKeyValues>" mit Daten fülle. Das funktioniert soweit ganz gut.
Nun stehe ich vor der Herausforderung das ich eine Tabelle erstellen möchte von der ich das Spalten Layout nicht kenne.
Hintergrund:
Ich gebe dem User der Applikation ein Eingabefeld in das er ein JDBC select Statement eintragen kann, welches dann ausgeführt wird. Das Ergebnis, sprich das ResultSet, gebe ich momentan in einer TextArea aus, was natürlich nicht so schön aussieht.
Da ich vorher nicht weiß welches select der User absetzt, und ich somit keine vordefinierte Tabelle oder Objekt Klasse erstellen kann, habe ich mir überlegt ob es möglich ist das ich quasi "on the fly" die Tabellen Spalten erstellen kann und dann die Ergebnisse des ResultSet (String) in einer ObservableList<String> speichere und dann am Ende damit die Tabelle fülle und anzeige.
Frage:
Ist dieser Gedanke vollkommen abwägig oder ist so etwas mit JavaFX machbar?
Wenn ja, wie wären dann die groben Schritte.
1. TableView erstellen - in der Controller Klasse bei der Initialisierung
Java:
@FXML
TableView<LogKeyValues> sqlQueryResults;
2. TableColumn aus ResultSetMetaData.getColumnName() erstellen. Ist das z.B. in einem Service Task möglich??? Ich arbeite mit Scene Builder und mir ist nicht ganz klar wie das zu realisieren wäre ??
3. CellFactory auf TableColumns erstellen --> col1.setCellFactory(new PropertyValueFactory...)
4. ObservableList<String> mit Daten aus ResultSet.next() füllen.
Bin für jeden Input dankbar.
Gruß
Ralf