• Wir präsentieren Dir heute ein Stellenangebot für einen Frontend-Entwickler Angular / Java in Braunschweig. Hier geht es zur Jobanzeige

TableView über Methode befüllen

T

Tintenfisch

Mitglied
Hey,
ich möchte in einer ListView Items über eine Methode aus eines Array einlesen.
Das Array und die dazugehörige Methode steht schon, nur gelingt es irgendwie nicht, die Methode mit der dazugehörigen Instanz dort funktionierend hinzuzufügen.
Hier mal der Code.
Java:
public class Main extends Application {
    @Override
    public void start(Stage primaryStage) {
        try {
            BorderPane mainBorderPane = new BorderPane();
            HBox hBoxMainCenter = new HBox();
            TableView<Year> yearTable = new TableView<>();
            
            TableColumn<Year, String> entryColumn = new TableColumn<>("entry");
            entryColumn.setCellValueFactory(new PropertyValueFactory<>("entry"));
            entryColumn.setCellFactory(TextFieldTableCell.forTableColumn());
            
            yearTable.getColumns().add(entryColumn);
            yearTable.setItems(getYear);
            
            hBoxMainCenter.getChildren().addAll(yearTable);
            mainBorderPane.setCenter(hBoxMainCenter);
            
            Scene scene = new Scene(mainBorderPane,400,400);
            scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
            primaryStage.setScene(scene);
            primaryStage.show();
        } catch(Exception e) {
            e.printStackTrace();
        }
    }
    public static void main(String[] args) {
        launch(args);
    }
    public ObservableList<Year> getYear() {
        ObservableList<Year> yearList = FXCollections.observableArrayList();
        yearList...
    }
}

Also funktionieren soll das ja mit .setItems(), welche dann die ObservableList, (hier die lete Methode) voraussetzt.
 
T

Tintenfisch

Mitglied
Okay, einen kleinen Schritt bin ich wohl weiter, aber es tauchte ein weiteres Problem auf.
Problem war zuerst, dass die Instant, hier "year1" in der falschen Klasse erstellt worden war.
Nun das Problem, dass die Methode add hier keine Argumente vom Typ String [] wiedergeben kann.
Mit Arrays.toString habe ich schon einiges probiert, aber bisher kam nichts anständiges bei rum.

Java:
    public ObservableList<Year> getYear() {
    
        ObservableList<Year> yearList = FXCollections.observableArrayList();
    
        Year year1 = new Year();
        yearList.add((year1.addYear()));
    }
 
L

lam_tr

Top Contributor
Okay, einen kleinen Schritt bin ich wohl weiter, aber es tauchte ein weiteres Problem auf.
Problem war zuerst, dass die Instant, hier "year1" in der falschen Klasse erstellt worden war.
Nun das Problem, dass die Methode add hier keine Argumente vom Typ String [] wiedergeben kann.
Mit Arrays.toString habe ich schon einiges probiert, aber bisher kam nichts anständiges bei rum.

Java:
    public ObservableList<Year> getYear() {
   
        ObservableList<Year> yearList = FXCollections.observableArrayList();
   
        Year year1 = new Year();
        yearList.add((year1.addYear()));
    }
Und was ist das eigentliche Problem dabei? Wird nichts angezeigt oder?

In der oben genannaten Methode fehlt noch ein return value.
 
T

Tintenfisch

Mitglied
Und was ist das eigentliche Problem dabei? Wird nichts angezeigt oder?

In der oben genannaten Methode fehlt noch ein return value.
Problem ist, dass die Daten aus „year1“ vom Typ String [] sind und die Methode wohl ausschließlich für Strings geeignet ist. Eine Anpassung der Methode oder Umwandlung der Dates des Arrays mit Array.toString, war bisher leider noch nicht funktionsfähig gelungen.
 
L

lam_tr

Top Contributor
Problem ist, dass die Daten aus „year1“ vom Typ String [] sind und die Methode wohl ausschließlich für Strings geeignet ist. Eine Anpassung der Methode oder Umwandlung der Dates des Arrays mit Array.toString, war bisher leider noch nicht funktionsfähig gelungen.
Das kapiere ich leider nicht. Deine Year Klasse enthält ein String Array als Field?

Trotzdem kannst du yearTable.setItems(getYear()); nicht aufrufen weil die Methode kein Wert liefert. und wenn die Liste etwas enthält dann sollte die TableView auch etwas anzeigen ohne Inhalt halt, d.h. wenn du die Zeile selektierst wird sie blau.
 
T

Tintenfisch

Mitglied
Das kapiere ich leider nicht. Deine Year Klasse enthält ein String Array als Field?

Trotzdem kannst du yearTable.setItems(getYear()); nicht aufrufen weil die Methode kein Wert liefert. und wenn die Liste etwas enthält dann sollte die TableView auch etwas anzeigen ohne Inhalt halt, d.h. wenn du die Zeile selektierst wird sie blau.
Ursprünglich war da ein Array drin. An sich soll in der Klasse nur eine Liste sein, hatte es auch mit ArrayList probiert, aber weite ohne Erfolg.
Ich habe das Ganze einmal blanko zusammengebaut, vielleicht hast du ja eine Idee, wie ich da die ArrayList reinbekommen könnte.

Aus Main class:
public class Main extends Application {
    @Override
    public void start(Stage primaryStage) {
        try {
            BorderPane mainBorderPane = new BorderPane();
            HBox mainCenterHBox = new HBox();
            
            TableView<YearList> yearListTable = new TableView<>();
            
            TableColumn<YearList, String> yearListColumn = new TableColumn<>("one");
            yearListColumn.setCellValueFactory(new PropertyValueFactory<>("one"));
            yearListColumn.setCellFactory(TextFieldTableCell.forTableColumn());
            
            yearListTable.getColumns().add(yearListColumn);
            yearListTable.setItems(getYearList());
            
            mainCenterHBox.getChildren().addAll(yearListTable);
            mainBorderPane.setCenter(mainCenterHBox);
            
            Scene scene = new Scene(mainBorderPane,400,400);
            scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
            primaryStage.setScene(scene);
            primaryStage.show();
        } catch(Exception e) {
            e.printStackTrace();
        }
    }
    private ObservableList<YearList> getYearList() {
        
        return null;
    }
    public static void main(String[] args) {
        launch(args);
    }
}


Aus YearList class:
package application;
import java.util.ArrayList;

public class YearList {
    
    private ArrayList <String> yearList;
    
    public YearList () {
        this.yearList = new ArrayList <String>();
    }

    public ArrayList<String> getYearList() {
        return yearList;
    }
    public void setYearList(ArrayList<String> yearList) {
        this.yearList = yearList;
    }
}
 
L

lam_tr

Top Contributor
Wofür ist die YearList Klasse?

Ich denke wenn du es so machst sollte es gehen.

Hier gibst du die TableView den Input:
Java:
yearListTable.setItems(getYearList());

Und Hier hattest du ursprunglich schon richtig gemacht, bloß muss du die Liste auch befüllen.
Java:
 private ObservableList<YearList> getYearList() {
     ObservableList<String> result = FXCollection.observableArrayList();
    result.add("2020");
    result.add("2021");
    result.add("2022");
    result.add("2023");
     result.add("2024");
        return result;
    }

---------
Nachtrag: so wirds nicht gehen weil ich kein String erwarte, sondern das Model Year, und wie @kneitzel schon unten erwähnt hat, die Columns sind nicht richtig initializiert, es seidem du hast in deiner Year Klasse ein Feld das one heißt.
 
Zuletzt bearbeitet:
kneitzel

kneitzel

Top Contributor
also ich verstehe da so einiges nicht ....

getYearList soll ObservableList<YearList> zurück geben und doch nicht ObservableList<String>. Da ist also etwas anzupassen ...

Und ich habe bei dem Code auch meine Verständnisprobleme:
Java:
            TableView<YearList> yearListTable = new TableView<>();
            
            TableColumn<YearList, String> yearListColumn = new TableColumn<>("one");
            yearListColumn.setCellValueFactory(new PropertyValueFactory<>("one"));

Was für Elemente willst Du in der Tabelle anzeigen? Was ist da Dein Modell?

Wenn Du da z.B. eine Entity Person hast, welche Vorname und Nachname hat, und Du willst diese darstellen in einer Tabelle, dann wäre das etwas wie:

Java:
            TableView<Person> yearListTable = new TableView<>();
            
            TableColumn<YearList, String>vornameColumn = new TableColumn<>("Vorname");
            vornameColumn.setCellValueFactory(new PropertyValueFactory<>("vorname"));

            TableColumn<YearList, String> nachnameColumn = new TableColumn<>("Nachname");
            nachnameColumn.setCellValueFactory(new PropertyValueFactory<>("nachname"));

Und dann wird bei setItems eine ObservableList<Person> übergeben.

Du hast da aber doch jetzt einen String und willst aus einem String die Property "one" auslesen? Das ist in einem String nicht zu finden. Aber wenn Person nun ein String vorname; und String nachname; hat, dann würde das Beispiel von mir funktionieren.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T TableView aktualisieren AWT, Swing, JavaFX & SWT 1
N JavaFX Tableview nach Löschen von Element falscher Index AWT, Swing, JavaFX & SWT 4
T TableView Zeilen einfärben AWT, Swing, JavaFX & SWT 13
missy72 JavaFX TableView / TableColumn / ObservableList / zwei Werte in einer Zelle AWT, Swing, JavaFX & SWT 2
W JavaFX TableView aktualisieren AWT, Swing, JavaFX & SWT 1
S JavaFX - mit Listener Veränderungen in einer TableView abhören AWT, Swing, JavaFX & SWT 3
B JavaFX TableView-Zellen sollen automatisch so groß wie der größte Inhalt sein AWT, Swing, JavaFX & SWT 6
D JavaFX Nullpointerexception wegen TableView AWT, Swing, JavaFX & SWT 2
S Alternative JavaFX TableView AWT, Swing, JavaFX & SWT 1
L JavaFX Tableview row callback AWT, Swing, JavaFX & SWT 0
G Bekomme ResultSet mittels ObservableList nicht ins TableView AWT, Swing, JavaFX & SWT 25
S JavaFX JavaFX TableView scrollen färbt falsche Zeilen AWT, Swing, JavaFX & SWT 1
A checkbox in einer TableView abhängig von einem anderen Celleninhalt disablen AWT, Swing, JavaFX & SWT 1
J JavaFx TableView mit CheckBox AWT, Swing, JavaFX & SWT 4
P JavaFX TableView Zelle markieren AWT, Swing, JavaFX & SWT 3
L JavaFX Tableview Datamodel AWT, Swing, JavaFX & SWT 2
M TableView Zeile hinzufügen AWT, Swing, JavaFX & SWT 5
Bluedaishi TableView mit Combox wert wird nicht in die TableView gesetzt AWT, Swing, JavaFX & SWT 38
J TableView Update/Refresh CPU AWT, Swing, JavaFX & SWT 2
B Text im Tetfeld in einer TableView darstellen AWT, Swing, JavaFX & SWT 20
J Tableview - kann man mit Enter die Zellen wechseln AWT, Swing, JavaFX & SWT 1
ralfb1105 JavaFX Dynamisch TableView Spalten erstellen AWT, Swing, JavaFX & SWT 4
M TableView + Datenbank Aktualisierung AWT, Swing, JavaFX & SWT 4
B TableView als PDF speichern AWT, Swing, JavaFX & SWT 8
B JavaFX TableView eine Zeile markieren AWT, Swing, JavaFX & SWT 5
B JavaFX JavaFX TableView PropertyValueFactory für Werte aus HashMap AWT, Swing, JavaFX & SWT 2
L JavaFX TableView Column Sortierung AWT, Swing, JavaFX & SWT 1
L Java FX Keine Anzeige Im Tableview AWT, Swing, JavaFX & SWT 4
L JavaFX TableView kein content text ändern AWT, Swing, JavaFX & SWT 2
L JavaFX TableView mit Aktionenbuttons AWT, Swing, JavaFX & SWT 1
C JavaFX Edit TableView in Verbindung mit SceneBuilder AWT, Swing, JavaFX & SWT 1
C JavaFX ProGuard -> TableView kein Inhalt AWT, Swing, JavaFX & SWT 7
J SceneBuilder TableView Checkbox AWT, Swing, JavaFX & SWT 1
J JavaFX Elemente werden nicht zu TableView hinzugefügt AWT, Swing, JavaFX & SWT 3
F JavaFX (Tree)TableView korrekt drucken AWT, Swing, JavaFX & SWT 1
robinab JavaFX TableView column resize nach setItems() AWT, Swing, JavaFX & SWT 0
G JavaFX TableView Wert in Spalte ändern AWT, Swing, JavaFX & SWT 0
S JavaFx - ausgewählte Rows in Arraylist (Tableview) AWT, Swing, JavaFX & SWT 4
S JavaFX - Populate TableView AWT, Swing, JavaFX & SWT 2
N JavaFX TableView aus Map AWT, Swing, JavaFX & SWT 2
J TableView Daten werden nicht ausgegeben AWT, Swing, JavaFX & SWT 9
B JavaFX TableView aus Collection befüllen AWT, Swing, JavaFX & SWT 1
S JavaFX TableView einzelne Zelle Layout zuweisen AWT, Swing, JavaFX & SWT 3
zhermann TableView die zweite AWT, Swing, JavaFX & SWT 7
H Java FX List<AlbumsBean> in FXML TableView AWT, Swing, JavaFX & SWT 37
E JavaFX TableView mit Zeilenumbruch in Zellen AWT, Swing, JavaFX & SWT 5
zhermann TableView wird nicht gefüllt AWT, Swing, JavaFX & SWT 14
M JavaFX JavaFX ResultSet in TableView ausgeben AWT, Swing, JavaFX & SWT 2
W JavaFX Mehrere Klassen in ein TableView AWT, Swing, JavaFX & SWT 6
MaxG. JavaFX Inhalt in Tableview wird nicht angezeigt AWT, Swing, JavaFX & SWT 11
M JavaFX berechneten Wert in TableView schreiben AWT, Swing, JavaFX & SWT 1
K JavaFX Message in TableView AWT, Swing, JavaFX & SWT 2
H TableView mit variabler Anzahl Spalten AWT, Swing, JavaFX & SWT 2
L JavaFX List oder TableView Größe dynamisch anpassen? AWT, Swing, JavaFX & SWT 4
L JavaFX TableView mit Excelfunktion AWT, Swing, JavaFX & SWT 1
D JavaFX TableView AWT, Swing, JavaFX & SWT 2
L JavaFX TableView mit XYChart verbinden AWT, Swing, JavaFX & SWT 3
blazingblade JavaFX Tableview Clock Column update AWT, Swing, JavaFX & SWT 5
P JavaFX, TableView und Datenbank AWT, Swing, JavaFX & SWT 4
K TableView: 'Komplexes' Object AWT, Swing, JavaFX & SWT 11
L JavaFX TableView background transparent machen AWT, Swing, JavaFX & SWT 7
F TableCell aus TableView holen AWT, Swing, JavaFX & SWT 8
K JavaFX TableView mit Rectangle AWT, Swing, JavaFX & SWT 3
M Befüllung der einzelnen Zeilen des TableView AWT, Swing, JavaFX & SWT 3
J JavaFX Tableview Daten hinzufügen aus anderer Klasse AWT, Swing, JavaFX & SWT 7
J Tableview Daten hinzufügen und aktualisieren AWT, Swing, JavaFX & SWT 5
N JavaFX TableView füllt nicht das gesamte ScrollPanle aus AWT, Swing, JavaFX & SWT 2
M JavaFX TableView & CSS, Rand um Tabellenkopf entfernen AWT, Swing, JavaFX & SWT 3
L JavaFX ListView oder TableView Style überschreiben? AWT, Swing, JavaFX & SWT 6
G Event Handling TableView daten in ein neues Fenster herauslesen? AWT, Swing, JavaFX & SWT 3
thet1983 JavaFX TableView Objekt Daten anzeige AWT, Swing, JavaFX & SWT 2
J JavaFX TableView - Höhe der Zeilen AWT, Swing, JavaFX & SWT 3
L JavaFX TableView mit Attributs der Modellreferenzerierung für die Spalte AWT, Swing, JavaFX & SWT 3
I JavaFX Buttons und TableView AWT, Swing, JavaFX & SWT 2
J JavaFX Bestimmte Zellen im TableView ändern (Farbe und Text) AWT, Swing, JavaFX & SWT 1
B Java FX TableView Zeilen mit verschiedenen Typen AWT, Swing, JavaFX & SWT 15
Z JavaFX TableView cellValueFactory für Arrays AWT, Swing, JavaFX & SWT 2
E JavaFX TableView mit Rechtsklick Zelle auswählen AWT, Swing, JavaFX & SWT 8
C (JavaFX 8) SQLite Datenbank in einem TableView darstellen AWT, Swing, JavaFX & SWT 2
H JavaFX TableView bleibt leer. AWT, Swing, JavaFX & SWT 8
M JavaFX TableView nach Spalte sortieren AWT, Swing, JavaFX & SWT 1
P JavaFX Dynamische TableView AWT, Swing, JavaFX & SWT 14
V Java FX POJO aus Datenbank in FX TableView / Best Practice AWT, Swing, JavaFX & SWT 0
P JavaFX TableView Item hinzufügen AWT, Swing, JavaFX & SWT 20
W JavaFX TableView frage AWT, Swing, JavaFX & SWT 5
M JavaFX Tutorial zu Tableview AWT, Swing, JavaFX & SWT 5
C JavaFX Zugriff auf TableView AWT, Swing, JavaFX & SWT 2
M JavaFX TableView mit CheckBox als Boolean AWT, Swing, JavaFX & SWT 5
B SimpleLongProperty in TableView wird nicht angezeigt AWT, Swing, JavaFX & SWT 3
X JavaFX TableView selektierung der cell wie begrenzen? AWT, Swing, JavaFX & SWT 0
X JavaFX TableView Error beim clicken des außenbereiches AWT, Swing, JavaFX & SWT 5
G JavaFX TableView - Änderungen werden nicht übernommen. AWT, Swing, JavaFX & SWT 3
G TableView EditingCell reagiert komisch AWT, Swing, JavaFX & SWT 4
R JavaFX TableView - nicht ausgewählte Reihe ansprechen AWT, Swing, JavaFX & SWT 6
S Java FX TableView disable Column AWT, Swing, JavaFX & SWT 4
K JavaFX Tableview mit fxml ohne Aktualiserung trotz Thread AWT, Swing, JavaFX & SWT 13
M JavaFX TableView Zeilennummerierung AWT, Swing, JavaFX & SWT 2
E JavaFX ScrollBar in TableView bei Column Resize AWT, Swing, JavaFX & SWT 2
Rudolf Nicht funktionierendes Databinding an POJOs für TableView AWT, Swing, JavaFX & SWT 2
Rudolf Referenz einer angeklickten Row einer TableView AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Anzeige

Neue Themen


Oben