Javafx ListView kann nicht gefüllt werden.

Totti-1987

Mitglied
Hallo zusammen ich bin neu hier und arbeite noch nicht lange mit Java, ich bräuchte einmal Hilfe beim füllen einer ListView (JavaFx). Ich kann die Items weder mit setIems noch mit der Funktion getItems.add hinzufügen.

Code:
    @FXML
    private ListView<String> groundView;
    
    
    ObservableList<String> list = FXCollections.observableArrayList();
    list.removeAll(list);
    list.add("Text1");
    list.add("Text2");
    list.add("Text3");
    groundView.setItems(list);

Würde mich über etwas Hilfe freuen :)

Vielen Dank und Viele Grüße

Totti
 
K

kneitzel

Gast
Kannst du das Problem noch im Detail beschreiben? Was passiert bzw. passiert nicht? Die Ausschnitte sehen ok aus auf den ersten Blick. Evtl. mal die ganze Klasse zeigen und das fxml.
 

Totti-1987

Mitglied
Hallo JustNobody,

danke schon einmal für die Antwort, die Anwendung bricht beim Setzen der ListView mit einer NullPointerException ab.

Hier noch ein paar mehr Informationen:

Code:
package application;

import java.io.File;
import java.io.IOException;
import java.text.ParseException;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.event.Event;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.control.ListView;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.Pane;
import javafx.stage.FileChooser;
import javafx.stage.Stage;

public class ControllerGrounds {

    @FXML private BorderPane mainPane;
    @FXML private ListView<String> groundView;
    
    public void importOpenFileTapped(ActionEvent event) {
        FileChooser fileChooser = new FileChooser();
        fileChooser.setTitle("Import File");
        Stage ChooseStage = new Stage();
        File file = fileChooser.showOpenDialog(ChooseStage);
        if (file != null && file.getName().toLowerCase().endsWith("csv")) {
            ImportGroundsCsv newImport = new ImportGroundsCsv(file);
            try {
                try {
                    newImport.importGroundsFromCsV();
                } catch (ParseException e) {
                    e.printStackTrace();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        } else {
            Alert alert = new Alert(AlertType.ERROR);
            alert.setTitle("Import File");
            alert.setHeaderText("Error:");
            alert.setContentText("Not a valid CSV-File!");
            alert.show();
        }
        
    }
    
    public void showGroundsButton(ActionEvent event) throws IOException {
        
        Pane groundsPane = FXMLLoader.load(getClass().getResource("UiGrounds.fxml"));
        
        ObservableList<String> list = FXCollections.observableArrayList();
        list.removeAll(list);
        list.add("Text1");
        list.add("Text2");
        list.add("Text3");
        groundView.setItems(list);
        
        mainPane.setCenter(groundsPane);
        
    }
    
    public void showMatchesButton(ActionEvent event) {
        
    }
    
    public void showTeamsButton(ActionEvent event) {
        
    }
    
    public void showImportButton(Event event) throws IOException {
        Pane load = FXMLLoader.load(getClass().getResource("UiLoad.fxml"));
        mainPane.setCenter(load);
        
    }

}

Code:
<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.ListView?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.VBox?>

<AnchorPane xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.ControllerGrounds">
   <children>
      <VBox prefHeight="400.0" prefWidth="600.0" style="-fx-background-color: beige;">
         <children>
            <ListView fx:id="groundView" prefHeight="400.0" prefWidth="600.0" />
         </children>
      </VBox>
   </children>
</AnchorPane>

Exception in thread "JavaFX Application Thread" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException


at javafx.fxml/javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1787)


at javafx.fxml/javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1670)


at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)


at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)


at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)


at javafx.base/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)


at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)


at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)


at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)


at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)


at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)


at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)


at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)


at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)


at javafx.base/javafx.event.Event.fireEvent(Event.java:198)


at javafx.graphics/javafx.scene.Node.fireEvent(Node.java:8865)


at javafx.controls/javafx.scene.control.Button.fire(Button.java:200)


at javafx.controls/com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:206)


at javafx.controls/com.sun.javafx.scene.control.inputmap.InputMap.handle(InputMap.java:274)


at javafx.base/com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)


at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)


at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)


at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)


at javafx.base/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)


at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)


at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)


at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)


at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)


at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)


at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)


at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)


at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)


at javafx.base/javafx.event.Event.fireEvent(Event.java:198)


at javafx.graphics/javafx.scene.Scene$MouseHandler.process(Scene.java:3876)


at javafx.graphics/javafx.scene.Scene$MouseHandler.access$1300(Scene.java:3604)


at javafx.graphics/javafx.scene.Scene.processMouseEvent(Scene.java:1874)


at javafx.graphics/javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2613)


at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:397)


at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:295)


at java.base/java.security.AccessController.doPrivileged(Native Method)


at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(GlassViewEventHandler.java:434)


at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389)


at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:433)


at javafx.graphics/com.sun.glass.ui.View.handleMouseEvent(View.java:556)


at javafx.graphics/com.sun.glass.ui.View.notifyMouse(View.java:942)


at javafx.graphics/com.sun.glass.ui.mac.MacView.notifyMouse(MacView.java:127)


Caused by: java.lang.reflect.InvocationTargetException


at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)


at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)


at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)


at java.base/java.lang.reflect.Method.invoke(Method.java:564)


at com.sun.javafx.reflect.Trampoline.invoke(MethodUtil.java:76)


at jdk.internal.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)


at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)


at java.base/java.lang.reflect.Method.invoke(Method.java:564)


at javafx.base/com.sun.javafx.reflect.MethodUtil.invoke(MethodUtil.java:275)


at javafx.fxml/com.sun.javafx.fxml.MethodHelper.invoke(MethodHelper.java:83)


at javafx.fxml/javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1782)


... 45 more


Caused by: java.lang.NullPointerException


at application.ControllerGrounds.showGroundsButton(ControllerGrounds.java:70)
 
K

kneitzel

Gast
Kannst Du noch die Zeile 70 markieren in ControllerGrounds.java?

Wenn ich vermuten müsste, dürfte es
mainPane.setCenter(groundsPane);
sein.
mainPane ist null, weil in deinem fxml keine mainPane enthalten ist. Wenn du die AnchorPane aus dem fxml darüber kriegen willst, dann sollte da wohl noch ein fx:id="mainPane" als Attribut dazu.

Aber ich bin kein javaFX Profi - das ist ein Themengebiet als BackEnd Entwickler, das man nur selten streift. Aber das wäre mein aktuelles Verständnis der Problematik.
 

Totti-1987

Mitglied
Bei der Zeile handelt es sich um die Zeile:
groundView.setItems(list);

Die mainPane ist in einer anderen fxml Datei erstellt worden und im Center sollen halt verschiedene andere Panes, welche in weiteren fxml files gestaltet werden eingeblendet werden. Dies funktioniert aber grundsätzlich, beispielsweise bei der Funktion showImportButton. Die Problematik scheint also wirklich beim füllen der Liste zu liegen und nicht bei der Anzeige der Objekte. Wobei ich das wirklich nicht verstehe weil ich das Füllen der Liste ja hier schon auf das absolute Minimum beschränkt habe.
 
K

kneitzel

Gast
Dann ist das Problem, dass die groundView null ist.

Also scheint da das automatische Laden nicht korrekt zu sein. Wie wird das denn geladen? Wenn du ein anderes fxml hast, in dem die mainPane enthalten ist, dann basiert der Controller darauf beim laden? So dass die groundsPane nicht bekannt ist?

Wenn das alles dynamisch ist, dann ist statt diesem Autowire durch @FXML evtl. ein lookup Aufruf notwendig?

Kannst Du da evtl. ein kleines, compilierbares Beispiel erstellen, das die Problematik aufzeigt? Dann wäre eine Analyse auf meiner Seite denkbar. Aber so mit den kleinen Ausschnitten ist es ein raten, was wieso schief läuft ...
 

Totti-1987

Mitglied
Der Sinn der mehreren fxml Dateien liegt darin das die MainPane, eine BorderPane ist in der oben lediglich ein paar Buttons sind, dies soll quasi als Menü fungieren. Im Center sollen dann die Panes aus den anderen fxml eingeblendet werden. Das einblenden der Panes klappt grundsätzlich, z.B. bei dem anderen Button (Import) oder wenn ich das Füllen der Liste auskommentiere (auch die leere Liste ist dann sichtbar).

Da es sich insgesamt nur um ein kleines private Projekt handelt habe ich mal den Projektorder angefügt.

Viele Dank für deine Mühe.

Viele Grüße

Totti
 

Anhänge

  • Grounds.zip
    26,3 KB · Aufrufe: 0


Schreibe deine Antwort... und nutze den </> Button, wenn du Code posten möchtest...
Ähnliche Java Themen
  Titel Forum Antworten Datum
L JavaFx ListView rechts abgeschnitten Java Basics - Anfänger-Themen 0
Juelin Netbeans mit JavaFX, FXML und Scenebuilder Java Basics - Anfänger-Themen 11
Juelin javaFX mit Elementen Java Basics - Anfänger-Themen 6
Juelin Netbeans und javafx Java Basics - Anfänger-Themen 6
M Wo den Ordner javafx-sdk-21.0.2 unter Linux ablegen? Java Basics - Anfänger-Themen 5
A Kapazität JavaFX TextField Java Basics - Anfänger-Themen 4
L JavaFX - grundlegende Verständnisprobleme Java Basics - Anfänger-Themen 1
S JavaFX Java Basics - Anfänger-Themen 1
A JavaFX-Anwendung läuft nicht mit Selenium WebDriver Java Basics - Anfänger-Themen 0
A JavaFX Toggle_Button_Disable Java Basics - Anfänger-Themen 2
ac83 JavaFX - Kompilierungsproblem Java Basics - Anfänger-Themen 1
R Intellij javafx --> jar Java Basics - Anfänger-Themen 11
O Compiler-Fehler JavaFX fmxl LoadExeption Java Basics - Anfänger-Themen 4
M Javafx Timeline Java Basics - Anfänger-Themen 2
sserio Wieso funktioniert mein TableView nicht /JavaFX. Java Basics - Anfänger-Themen 4
A JavaFX-Filechooser Java Basics - Anfänger-Themen 5
H JavaFX Hintergrundfarbe ändern, warten, Hintergrundfarbe wieder ändern Java Basics - Anfänger-Themen 34
A JavaFx - SceneBuilder Java Basics - Anfänger-Themen 5
S JavaFX - Objekt an neue Stage übergeben Java Basics - Anfänger-Themen 12
G Javafx Eventhandler zu jedem Node Java Basics - Anfänger-Themen 1
T Elemente aus Array zu TableView JavaFX übertragen Java Basics - Anfänger-Themen 2
T HTMLEditor JavaFX Java Basics - Anfänger-Themen 4
E JavaFX Editor Probleme mit der Zwischenablage Java Basics - Anfänger-Themen 12
E JavaFX Taschenrechner Eingabe im Textfield beschränken Java Basics - Anfänger-Themen 2
D Mit Objekten rechnen, Textfield, JavaFX, Noob Java Basics - Anfänger-Themen 8
P Probleme bei der Installation von JavaFX Java Basics - Anfänger-Themen 3
R Umsetzungsplan JavaFx App Java Basics - Anfänger-Themen 9
M JavaFX- Verschiedene Stages Java Basics - Anfänger-Themen 1
P JavaFx einrichten Java Basics - Anfänger-Themen 6
Torsten.E JavaFX mit Visual Studio Code verwenden Java Basics - Anfänger-Themen 1
P JavaFX: Verständnisproblem bei ComboBox/ChoiceBox etc. Java Basics - Anfänger-Themen 9
D JAVAFX WebVIEW zu JSOUP Java Basics - Anfänger-Themen 3
D Folgende Fehlermeldung bei der Installation von JAVAFX Java Basics - Anfänger-Themen 1
S JavaFX-Arduino Kommunikation mit LCD-Anzeige Java Basics - Anfänger-Themen 0
B java.lang.NullPointerException bei javafx Java Basics - Anfänger-Themen 10
J javafx mediaplayer mit https Java Basics - Anfänger-Themen 3
J JavaFX Label,Button zur Laufzeit Java Basics - Anfänger-Themen 30
D Ausführbare jar/exe aus JAVAFX Projekt erstellen (IntelliJ) Java Basics - Anfänger-Themen 14
O JavaFX XML Versuch Java Basics - Anfänger-Themen 2
O JavaFX Java Basics - Anfänger-Themen 7
M JavaFX-Übung Autospiel Java Basics - Anfänger-Themen 4
M JavaFX: Fenster bleibt weiß Java Basics - Anfänger-Themen 3
L Klassen NFC Reader und JavaFx Problem -> threads? Java Basics - Anfänger-Themen 2
J Aktuelle Zeit in einer JavaFX Anwendung aktualisieren lassen Java Basics - Anfänger-Themen 4
I Javafx Tabpane Reiter blockieren Java Basics - Anfänger-Themen 1
S JavaFX Beginneraufgabe Java Basics - Anfänger-Themen 1
W JavaFX import Fehler/Zellularautomaten Java Basics - Anfänger-Themen 1
Spencer Reid JavaFX Memory Thread.sleep Java Basics - Anfänger-Themen 1
CptK mit javafx button erstellen Java Basics - Anfänger-Themen 1
U Javafx Array aus Buttons Java Basics - Anfänger-Themen 2
D JavaFX Vererbung Java Basics - Anfänger-Themen 2
E JAvaFX: Verschiedene Panels nach Klick auf Node des TreeView anzeigen Java Basics - Anfänger-Themen 0
K Erste Schritte JavaFX - wie von "externer" Klasse auf Methoden des Controllers zugreifen Java Basics - Anfänger-Themen 2
J JavaFX -> SocketIO -> Thread -> Update Label Java Basics - Anfänger-Themen 13
D JavaFX, Verweis auf Datei im Projekt Java Basics - Anfänger-Themen 0
M JavaFX in Swing-Applikationen einbetten Java Basics - Anfänger-Themen 5
M JavaFX: Problem mit der TableView Java Basics - Anfänger-Themen 0
P JavaFX ohne FXMLLoader Java Basics - Anfänger-Themen 3
K JavaFX UI controls Java Basics - Anfänger-Themen 1
B Farbverlauf erstellen ohne Javafx, AWT usw.? Java Basics - Anfänger-Themen 34
H Best Practice JavaFX TableView mit Zell-Rahmen anstelle von Zeilen-Balken Java Basics - Anfänger-Themen 1
M Ausgabe eines Arrays auf Label (Javafx) Java Basics - Anfänger-Themen 4
K Threads Multithread in JavaFx Java Basics - Anfänger-Themen 11
R Threads in JavaFX Java Basics - Anfänger-Themen 3
N JavaFX - (Controller) - Klasse verkleinern Java Basics - Anfänger-Themen 8
U JavaFX eine Vbox Instanz pro Pane? Java Basics - Anfänger-Themen 2
Spencer Reid JavaDoc zu JavaFx hinzufügen Java Basics - Anfänger-Themen 1
V wie kann man am einfachsten für ein Element der JavaFX die Umrandung aktiwieren ? auch ohne css ? Java Basics - Anfänger-Themen 4
D OOP JavaFX objektorientiert Java Basics - Anfänger-Themen 2
V Interface ich schäme mich das zu fragen, aber ich schaff nicht ein Text zu zentrieren :( [javaFX] Java Basics - Anfänger-Themen 6
P JavaFX - Komponenten skalieren Java Basics - Anfänger-Themen 16
P JavaFX Textfelder geben immer null zurück Java Basics - Anfänger-Themen 8
P JavaFX TextArea.setText Java Basics - Anfänger-Themen 13
F javafx.fxml.LoadException: Root hasn't been set. Java Basics - Anfänger-Themen 0
J JavaFX aus Java-Application heraus starten Java Basics - Anfänger-Themen 7
T Swing, SWT oder JavaFX Java Basics - Anfänger-Themen 8
S [JavaFX 2.1] - Eigene Sprachauswahl? Java Basics - Anfänger-Themen 4
D Javafx XYChart Variable in Schleife erzeugen? Java Basics - Anfänger-Themen 18
E JavaFX und Java auf Kommandozeile compilen Java Basics - Anfänger-Themen 2
J Webanwendung JavaFX Java Basics - Anfänger-Themen 4
Povlsen84 [javafx] Zusammenarbeit mit Tomcat Java Basics - Anfänger-Themen 4
W ListView komplett anzeigen Java Basics - Anfänger-Themen 2
L ListView mit Datenfüllen; HashMap´s Java Basics - Anfänger-Themen 4
L Problem mit Android ListView Java Basics - Anfänger-Themen 2
A Signierte Exe Datei funktioniert nicht mehr Java Basics - Anfänger-Themen 1
A Signierte Exe Datei funktioniert nicht mehr Java Basics - Anfänger-Themen 3
C my_table.setRowSelectionAllowed(true) funktioniert nicht; Java Basics - Anfänger-Themen 0
B Warum funktioniert die Lösung von CodeGym aber meine nicht? Java Basics - Anfänger-Themen 3
P Wo NUR (!) JRE v18 oder v21 herunterladen? Also nicht volles JDK Java Basics - Anfänger-Themen 1
J shuffle cards wird nicht ausgeführt. Java Basics - Anfänger-Themen 2
J JTextField -> CaretPos bei SelectionStart() setzten nicht bei SelectionEnd() Java Basics - Anfänger-Themen 20
W Java-PRogramm liest als EXE-File Nicht USB, jedoch aus NetBeans Java Basics - Anfänger-Themen 45
I Webservice funktioniert nicht Java Basics - Anfänger-Themen 5
C Abbruch einer Schleife mit break, meine Übung funktioniert nicht richtig Java Basics - Anfänger-Themen 4
SarahXyy Ergebnisse stimmen nicht überein? Java Basics - Anfänger-Themen 11
thomas55 Erste Schritte Modul läuft in IntelliJ, nicht in NetBeans Java Basics - Anfänger-Themen 11
G Nicht ausführbares JAR, externe jars mit einbinden Java Basics - Anfänger-Themen 7
S Erstes Programm: Hallo Welt funktioniert nicht. Java Basics - Anfänger-Themen 3
O Obfuscateter Code lässt sich nicht ausführen? Java Basics - Anfänger-Themen 7
A "Hello World"-Programm läuft nicht Java Basics - Anfänger-Themen 16

Ähnliche Java Themen

Neue Themen


Oben