ListView in TableCell

Tintenfisch

Bekanntes Mitglied
Hallo,
ich versuche eben in einer Zelle einer TableView, eine ListView darzustellen. Es sollen primär mehrere Einträge je Zelle untereinander gelistet sein.
Bisher hatte ich provisorisch mehrere Listenplätze mit dem StringBuilder zu einem zusammengefasst, was natürlich auf Grund fehlender Absätze der einzelnen Teile recht unansehnlich ist.
Hätte jemand von euch einen Lösungsansatz parat, denn meine Versuche führten leider alle nicht zum Erfolg.
 

missy72

Bekanntes Mitglied
Jetzt hast du aber Glück gehabt. Ich hatte so was auch vor. Ich möchte Zwischenzeiten speichern.
Das wollte ich eigentlich in der Version 1.1 :D einbringen, da es nur ein Nicetohave ist.
Aber ich habe ja auch noch ne Menge zu lernen, da macht es mir nichts aus.
Das Layout der Listview passt noch nicht und natürlich musst die Inhalte entsprechend individuell zuweisen, aber vom Prinzip funktioniert der Code.
Java:
@FXML private TableColumn<Fahrer, Void> zfZielZeitTC;

        zfZielZeitTC.setCellFactory(new Callback<TableColumn<Fahrer,Void>, TableCell<Fahrer,Void>>() {
            @Override
            public TableCell<Fahrer, Void> call(TableColumn<Fahrer, Void> parameter) {
                return new TableCell<Fahrer, Void>(){
                   
                    ListView<String> laufZeitenView = new ListView<String>();
                    ObservableList<String> laufZeitenListe = FXCollections.observableArrayList();      
                    {
                        laufZeitenListe.addAll("01:12:23","00:48:12","00:25:12");
                        laufZeitenView.setItems(laufZeitenListe);
                    }

                    protected void updateItem(Void parameterIV, boolean parameterBoolean) {
                        super.updateItem(parameterIV, parameterBoolean);
                       
                        if (parameterBoolean) {                          
                            setGraphic(null);                          
                            }else {
                               
                                setGraphic(laufZeitenView);

                            }  
                        }
                    };                                                  
                }
            });

1615972667427.png
 

Tintenfisch

Bekanntes Mitglied
Hallo @missy72, ich hätte zu dem Ganzen auch gleich noch eine Frage. Um die Daten jeder Zeile in eine ListView zu schreiben, habe ich eine Methode gebaut, welcher die Items aus der setCellFactory übergeben werden, die diese dann in die ListView schreibt und die ListView zurückgibt. Funktioniert soweit, nur bedarf das, in Bezug auf andere Funktionen, eine ordentliche Menge an Änderungen im Code.
Kennst du (oder jemand anderes) eine praktischere Lösung, bei welcher ggf. die Datentypen der TableColumn (String) stehen bleiben könnten?

Java:
    public void setCellFactory (TableColumn<Date, LinkedList<String>> userColumn, User user) {
        userColumn.setCellFactory(new Callback <TableColumn <Date, LinkedList<String>>, TableCell <Date, LinkedList<String>>>() {
            @Override
            public TableCell<Date, LinkedList<String>> call(TableColumn<Date, LinkedList<String>> column) {
                return new TableCell<Date, LinkedList<String>>() {
                    protected void updateItem(LinkedList<String> item, boolean empty) {
                        super.updateItem(item, empty);
                        if (item == null || empty) {
                            setText(null);
                            setStyle("");
                        } else {
                            setItem(item);
                            setGraphic(User.tableCellList(item));
                        }
                    }
                };
            }
        });
    }
Java:
public static ListView<String> tableCellList (LinkedList<String> item) {       
        ListView<String> tableCellListView = new ListView<String>();
        ObservableList<String> tableCellList = FXCollections.observableArrayList();
        for (String listString : item) {
            tableCellList.add(listString);
            tableCellListView.setItems(tableCellList);
        }
        return tableCellListView;
    }
 

missy72

Bekanntes Mitglied
Ein String ist ein String.
Deine Frage war ja eine ListView in der TableView unterzubringen.
Ich habe das noch nicht ausprobiert, aber mehrere Strings in einer Zelle anzeigen geht wohl auch.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
MiMa Obseved List mit ListView (Dateiliste) AWT, Swing, JavaFX & SWT 4
H JavaFX ListView MultipleSelection AWT, Swing, JavaFX & SWT 9
AmsananKING ListView Drag And Drop AWT, Swing, JavaFX & SWT 0
AmsananKING Drag And Drop Filenames Inside A Listview AWT, Swing, JavaFX & SWT 1
D Layout einer scene mit ListView Elementen und Zwei Textfeldern AWT, Swing, JavaFX & SWT 1
TheWhiteShadow JavaFX ListView Problem beim Entfernen von Elementen AWT, Swing, JavaFX & SWT 1
Davee JavaFX ListView = null wenn ich sie in Laufzeit ändern will! AWT, Swing, JavaFX & SWT 16
G Eintrag soll nur einmal in Listview zu sehen sein AWT, Swing, JavaFX & SWT 3
T ListView nach Erweiterung Fehler in CellFactory AWT, Swing, JavaFX & SWT 8
MiMa File Dateien im ListView als Name anzeigen? AWT, Swing, JavaFX & SWT 6
B JavaFX ListView in Kombination mit TextField AWT, Swing, JavaFX & SWT 5
B JavaFX das richtige ListView filtern AWT, Swing, JavaFX & SWT 2
B Dynamische ListView-Größe, die bei Fenstergrößenänderung sich anpasst AWT, Swing, JavaFX & SWT 19
S JavaFX ListView Inhalte während Laufzeit ändern AWT, Swing, JavaFX & SWT 23
karlmasutra JavaFX ListView zeigt Einträge nicht an AWT, Swing, JavaFX & SWT 11
B Textfelder in einer ListView ausgeben AWT, Swing, JavaFX & SWT 13
J CheckBoxListCell auf click event in listView reagieren AWT, Swing, JavaFX & SWT 1
karlmasutra JavaFX Listenelemente bearbeiten Listview AWT, Swing, JavaFX & SWT 1
D JavaFX Listview mit observableList AWT, Swing, JavaFX & SWT 6
MiMa Selektion aus einer ListView AWT, Swing, JavaFX & SWT 5
N Frage zu ListView AWT, Swing, JavaFX & SWT 11
L JavaFX ListView Größe anpassen AWT, Swing, JavaFX & SWT 1
F JavaFX ListView füllen in Controller Class AWT, Swing, JavaFX & SWT 12
F JavaFX In SampleController ObservableList zu ListView hinzufügen AWT, Swing, JavaFX & SWT 0
D JavaFX ListView & TabelView AWT, Swing, JavaFX & SWT 9
F JavaFX Custom ListView erstellt ghost Element AWT, Swing, JavaFX & SWT 3
F JavaFX Von Datenbank in ListView AWT, Swing, JavaFX & SWT 4
F JavaFX ListView Zeilenhöhe AWT, Swing, JavaFX & SWT 2
M Auswahl aus einer ListView AWT, Swing, JavaFX & SWT 3
F Icons neben Text in Listview setzen AWT, Swing, JavaFX & SWT 2
K ListView right click AWT, Swing, JavaFX & SWT 1
Y Listview Textfield vergrößern, Schrift anpassen AWT, Swing, JavaFX & SWT 0
C Liste - ListView wird nicht angezeigt AWT, Swing, JavaFX & SWT 15
L JavaFX ListView oder TableView Style überschreiben? AWT, Swing, JavaFX & SWT 6
thobren listview seclect abschalten AWT, Swing, JavaFX & SWT 1
NoXiD Java FX JFX 2 DnD ListView AWT, Swing, JavaFX & SWT 3
T [JavaFX 2.0] ListView editieren AWT, Swing, JavaFX & SWT 2
J Probleme mit idividueller Tablecell AWT, Swing, JavaFX & SWT 0
offi Combobox in TableCell AWT, Swing, JavaFX & SWT 1
H JavaFX TableCell mit Buttons AWT, Swing, JavaFX & SWT 1
F TableCell aus TableView holen AWT, Swing, JavaFX & SWT 8
S SWT TableCell mit Composite als Inhalt / Höhe der Cell/Row AWT, Swing, JavaFX & SWT 5
O Zweifarbiger Hintergrund in einer TableCell? AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen


Oben