JavaFX ListView füllen in Controller Class

fabipfolix

Mitglied
Hallo,
ich habe bereits einige Variationen probiert, jedoch ist es mir nie gelungen den Inhalt einer im Scenebuilder generierten ListView darzustellen.
Code:
package application;

import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.fxml.FXML;
import javafx.scene.control.ListView;

public class SampleController {

    @FXML
    private static ListView<String> testListView;
   
   
    public static void createListView() {
        ObservableList<String> obsList = FXCollections.observableArrayList (
                "Test1", "Test2", "Test3");
        testListView.setItems(obsList);
       
    }
       
}

Theoretisch müsste der Fehler an der "Erstellung" der ListView liegen, da es manuell erstellt auf diese Weise ja funktioniert.

Ich hoffe jemand kennt die Lösung und kann mir hierbei helfen!
 

fabipfolix

Mitglied
Ich rufe das ganz in der Main Klasse auf.
Dabei bekomme ich dann den Fehler:


java.lang.NullPointerException
at application.SampleController.createListView(SampleController.java:17)
at application.Main.start(Main.java:17)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$162(LauncherImpl.java:863)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(PlatformImpl.java:326)
at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191)
at java.lang.Thread.run(Unknown Source)
 

Robat

Top Contributor
Da ist auch der Fehler.
Ich frag einfach mal in den Raum: Kennst du die Bedeutung von static?

PS: Ich bezweifle dass der SceneBuilder die ListView als static deklariert hat.
 

fabipfolix

Mitglied
Ich frag einfach mal in den Raum: Kennst du die Bedeutung von static?
Mehr oder weniger, static sorgt dafür, dass man es unabhängig von Objekten benutzen kann. Muss allerdings auch zugeben, dass mein Wissen dem bezüglich etwas sporadisch ist.

Wäre dir jedoch sehr dankbar, wenn du mich belehren kannst und möglicherweise mir auch erklären kannst, wie ich mein Problem dann lösen kann.
 

Robat

Top Contributor
Methoden und/oder Variablen die static sind existieren bereits vor jeglicher Instanzierung eines Objekts.

Der Controller einer FXML Datei (und damit auch ihre Komponenten) wird genau ein mal in der Applikation geladen, nämlich g.d.w. die FXML Datei geladen wird.
Ich nehme an, dass du die o.g. Methode schon aufrufst bevor dein Controller überhaupt geladen wurde. Das verursacht die NullPointerException.

Normalerweise implementieren FXController das Initializable Interface welches eine initialize() Methode zur Verfügung stellt. Dort musst du deiner ListView dan
 

fabipfolix

Mitglied
Normalerweise implementieren FXController das Initializable Interface welches eine initialize() Methode zur Verfügung stellt. Dort musst du deiner ListView dan
Darauf bin ich bereits einmal gestoßen, war mir jedoch unsicher was das macht.

Wenn ich dich richtig verstanden habe genügt es dann doch den Code der createListView Methode in initializeable zu kopieren. Hierbei stoße ich jedoch auf eine
javafx.fxml.LoadException:
/C:/Users/fabia/workspace/workspace/ListViewTest/bin/application/Sample.fxml

at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2601)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2579)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2441)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3214)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3175)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3148)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3124)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3104)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:3097)
at application.Main.start(Main.java:19)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$162(LauncherImpl.java:863)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(PlatformImpl.java:326)
at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException
at application.SampleController.initialize(SampleController.java:24)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2548)
... 17 more
Der Pfad passt hierbei soweit, jedoch eigentlich. Oder wird der src Pfad benötigt?
Oder ist das Problem ein anderes?

Kompletter Code:
Java:
package application;

import java.net.URL;
import java.util.ResourceBundle;

import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.ListView;

public class SampleController implements Initializable {

    @FXML
    private static ListView<String> testListView;
   
    @FXML private URL location;
   

    @Override
    public void initialize(URL l, ResourceBundle resources) {
        ObservableList<String> obsList = FXCollections.observableArrayList (
                "Test1", "Test2", "Test3");
        testListView.setItems(obsList);
    }
       
}

Schon mal Danke, dass du so geduldig bleibst und höflich antwortest!
 

fabipfolix

Mitglied
Das brauchst du nicht.
Vermutete ich bereits, wollte es dann jedoch auch probieren.

In Zeile 24 steht
Java:
testListView.setItems(obsList);
Allerdings verstehe ich nicht, was daran nicht passt.
Muss ich mit einer CellFactory arbeiten?

Main:
Java:
package application;
  
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.stage.Stage;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.layout.BorderPane;
import javafx.fxml.FXMLLoader;




public class Main extends Application {
    @Override
    public void start(Stage primaryStage) {
        try {
            Parent root = FXMLLoader.load(getClass().getResource("Sample.fxml"));
          
          
            Scene scene = new Scene(root);
            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);
    }
}
 

fabipfolix

Mitglied
Meine FXML ist diese hier, die fxid passt aber eigentlich:
Code:
<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.layout.BorderPane?>

<BorderPane xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.SampleController">
   <center>
      <AnchorPane prefHeight="200.0" prefWidth="200.0" BorderPane.alignment="CENTER">
         <children>
            <ListView fx:id="testListView" prefHeight="200.0" prefWidth="200.0" />
         </children>
      </AnchorPane>
   </center>
</BorderPane>

Sonst habe ich nur noch die application.css, welche allerdings leer ist.
 
Ä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
T ListView in TableCell AWT, Swing, JavaFX & SWT 4
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 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
B Jlist füllen AWT, Swing, JavaFX & SWT 4
T Bild in ein graphics füllen AWT, Swing, JavaFX & SWT 2
izoards JavaFX TableView mit Array Inhalt füllen AWT, Swing, JavaFX & SWT 1
maximizer JavaFX Accordion mit eigenen TitledPanes füllen AWT, Swing, JavaFX & SWT 0
W TableView füllen AWT, Swing, JavaFX & SWT 18
P JavaFx - Progressbar - Füllen mittels mehreren Tasks AWT, Swing, JavaFX & SWT 0
D Columns unabhängig voneinander mit Daten füllen JavaFx AWT, Swing, JavaFX & SWT 1
J Fenster mit Inhalten aus einem Array Füllen AWT, Swing, JavaFX & SWT 4
G JTable füllen AWT, Swing, JavaFX & SWT 1
F JavaFX Tabelle mit Daten füllen AWT, Swing, JavaFX & SWT 9
W JavaFX Tabelle zeilenweise mit Werten füllen und an Container anpassen AWT, Swing, JavaFX & SWT 23
J ObservableList wirft exception beim zweiten füllen. AWT, Swing, JavaFX & SWT 4
L Methode zum Füllen einer ComboBox AWT, Swing, JavaFX & SWT 4
A JTable mit Daten füllen AWT, Swing, JavaFX & SWT 1
K Swing JComboBox mit ArrayList füllen AWT, Swing, JavaFX & SWT 4
N JavaFX Füllen von ausgewählten Pfadelementen AWT, Swing, JavaFX & SWT 1
D Textfield bei starten füllen. AWT, Swing, JavaFX & SWT 5
S JComboBox aus anderer Klasse füllen (Java-Swing) AWT, Swing, JavaFX & SWT 0
E Panel mit Leben füllen AWT, Swing, JavaFX & SWT 2
D Graphics2D einen Bereich füllen AWT, Swing, JavaFX & SWT 1
O Swing JTable per Scrollen füllen! AWT, Swing, JavaFX & SWT 7
H Quadrate dnamisch erzeugen und beliebig füllen AWT, Swing, JavaFX & SWT 7
C Swing ImageIcon mit Bild aus Temp-Verzeichniss füllen AWT, Swing, JavaFX & SWT 15
J JEditorPane mit HTML füllen AWT, Swing, JavaFX & SWT 2
O JComboBox mit ArrayList füllen AWT, Swing, JavaFX & SWT 3
1 Liste mit Objekten Füllen AWT, Swing, JavaFX & SWT 7
S Swing JComboBox mit Datenbank füllen AWT, Swing, JavaFX & SWT 16
I Jlist dynamisch aus Datenbank füllen AWT, Swing, JavaFX & SWT 14
M JList mit 2-zeiligen Objekten füllen AWT, Swing, JavaFX & SWT 7
H JTable von anderer Klasse aus füllen AWT, Swing, JavaFX & SWT 6
C SWT Combobox mit Textdatei füllen AWT, Swing, JavaFX & SWT 2
P Swing JtextArea füllen mit setText AWT, Swing, JavaFX & SWT 7
S JComboBox mit Ergebnis einer SQL Abfrage füllen AWT, Swing, JavaFX & SWT 39
X JTable mit verschiedenen Objekten füllen AWT, Swing, JavaFX & SWT 14
C JFrame - Löschen und neu füllen AWT, Swing, JavaFX & SWT 9
C JList mit Vector füllen AWT, Swing, JavaFX & SWT 3
Ollek Realisierung: JTable zur Laufzeit mit neuen Daten füllen AWT, Swing, JavaFX & SWT 3
S Swing JTextArea während der Laufzeit füllen AWT, Swing, JavaFX & SWT 5
F Fläche invertiert füllen AWT, Swing, JavaFX & SWT 2
A Swing JTable spaltenweise füllen AWT, Swing, JavaFX & SWT 3
R Excpetion füllen/entleeren von JTable AWT, Swing, JavaFX & SWT 6
E Swing JLabel mit unicode füllen AWT, Swing, JavaFX & SWT 7
B JTabbedPane mit Enumeration dynamisch füllen AWT, Swing, JavaFX & SWT 5
K TableModel mit Daten aus Datenbank füllen AWT, Swing, JavaFX & SWT 7
M Liste mittels SwingWorker füllen klappt nicht AWT, Swing, JavaFX & SWT 10
M GridBagLayout zeilenweise füllen AWT, Swing, JavaFX & SWT 5
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
E JCombobox mit Daten aus DB füllen AWT, Swing, JavaFX & SWT 9
Ollek JTable - Tabelle füllen mit einer ArrayList AWT, Swing, JavaFX & SWT 22
L JTree Selektion "füllen" AWT, Swing, JavaFX & SWT 4
N Textfeld füllen sobald es den Fokus verliert AWT, Swing, JavaFX & SWT 2
U JTable mit Daten aus einer HashMap füllen AWT, Swing, JavaFX & SWT 8
S JTree mit Daten aus Model füllen, eigenes TreeModel (gute Dokumentation des Problems) AWT, Swing, JavaFX & SWT 2
C JList: Eintrag anklicken & JTextfield mit Text aus MySQL füllen? (Screenshot dabei) AWT, Swing, JavaFX & SWT 8
F JList füllen mit LinkedList-Elementen AWT, Swing, JavaFX & SWT 21
Spot84 jtable mit checkboxnode dynamisch per arraylist füllen AWT, Swing, JavaFX & SWT 8
J jTabbedPane mit jPanel füllen AWT, Swing, JavaFX & SWT 14
N Gridlayout 2. Spalte füllen AWT, Swing, JavaFX & SWT 4
M jLabel mit Bild füllen? AWT, Swing, JavaFX & SWT 7
B Einfaches JScrollPane mit Bildern füllen AWT, Swing, JavaFX & SWT 2
ABstraCT JCombobox dynamisch füllen (erstes Element Problem) AWT, Swing, JavaFX & SWT 4
G Jpanel mit Hintergrundbild füllen? AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben