NullPointerException observableList

derpropeller

Mitglied
Hallo Leute,

ich weiß nicht ob ich gerade einfach auf dem Schlauch stehe, aber ich verstehe nicht ganz, warum ich an der Stelle, wenn ich die observableList in die FilteredList stecken will, eine NullPointerException bekomme:
Java:
FilteredList<Personen> personenListeFilter = new FilteredList<>(launcher.getPersonenListe(), p -> true);
Die Personen werden schließlich im Konstruktor des Launcher der observableList hinzugefügt?!

Wäre schön, wenn mir jemand weiter helfen könnte. :)

Java:
package icontact;

import java.io.IOException;

import icontact.model.Personen;
import icontact.view.contactuicontroller;
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;

public class Launcher extends Application {

    private Stage primaryStage;
    private BorderPane wrapper;
    private ObservableList<Personen> personenListe = FXCollections.observableArrayList();

    //Konstruktor
    public Launcher(){
        personenListe.add(new Personen("Waldemar","Metzler"));
        personenListe.add(new Personen("Dave","Daveler"));
        personenListe.add(new Personen("Dave2","Davveler"));
        personenListe.add(new Personen("Blabla","Kacke"));
        personenListe.add(new Personen("Stinkt","Heftig"));
        personenListe.add(new Personen("Dolly","Buster"));
        personenListe.add(new Personen("Eric","Buster"));
    }

    public ObservableList<Personen> getPersonenListe(){
        return personenListe;
    }


    //Start-Methode der Application Klasse
    @Override
    public void start(Stage primaryStage) {
        this.primaryStage = primaryStage;
        this.primaryStage.setTitle("iContact");

        initwrapper();
        initcontactui();
    }


    //Initialisiert den umschließenden Container
    public void initwrapper(){

        //Wie eigentlich immer, wenn man was aus einer Datei lädt,
        //exception handling nötig
        try {

            //Lädt die Inhalte aus der wrapper.fxml
            FXMLLoader loader = new FXMLLoader();
            loader.setLocation(Launcher.class.getResource("view/wrapper.fxml"));
            wrapper = (BorderPane) loader.load();

            //Fügt der primaryStage (der Hauptcontainer) die Scene
            //hinzu
            Scene scene = new Scene(wrapper);
            primaryStage.setScene(scene);
            primaryStage.show();

        }catch (IOException e){
            e.printStackTrace();
        }

    }

    //Initialisiert das Layout
    public void initcontactui(){
        try {

            //Lädt Inhalte aus contactui.fxml
            FXMLLoader loader = new FXMLLoader();
            loader.setLocation(Launcher.class.getResource("view/contactui.fxml"));
            AnchorPane contactui = (AnchorPane) loader.load();

            //Jetzt, das Layout in die Mitte des umschließenden (wrapper) Containers setzen
            wrapper.setCenter(contactui);

            //Verbindet launcher und controller
            contactuicontroller controller = loader.getController();
            controller.setLauncher(this);

        }catch (IOException e){
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        launch(args);
    }



}
Java:
package icontact.model;

import javafx.beans.property.IntegerProperty;
import javafx.beans.property.SimpleIntegerProperty;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.StringProperty;

public class Personen {

    //Variablen

    private final StringProperty vname;
    private final StringProperty nname;
    private final StringProperty adresse;
    private final IntegerProperty fnummer;
    private final IntegerProperty mnummer;
    private final StringProperty mail;


    //Konstruktor
    public Personen(String vname, String nname){
        this.vname = new SimpleStringProperty(vname);
        this.nname = new SimpleStringProperty(nname);

        this.adresse = new SimpleStringProperty("blabalweg");
        this.fnummer = new SimpleIntegerProperty(123456);
        this.mnummer = new SimpleIntegerProperty(789012);
        this.mail = new SimpleStringProperty("super@klasse.de");

    }

    //Getters und setters

    public String getVname() {
        return vname.get();
    }

    public void setVname(String vname){
        this.vname.set(vname);
    }

    public StringProperty vnameProperty(){
        return vname;
    }


    public String getNname() {
        return nname.get();
    }

    public void setNname(String nname){
        this.nname.set(nname);
    }

    public StringProperty nnameProperty(){
        return nname;
    }

    public String getAdresse() {
        return adresse.get();
    }

    public void setAdresse(String adresse){
        this.adresse.set(adresse);
    }

    public StringProperty adresseProperty(){
        return adresse;
    }

    public int getFnummer() {
        return fnummer.get();
    }

    public void setFnummer(int fnummer){
        this.fnummer.set(fnummer);
    }

    public IntegerProperty fnummerProperty(){
        return fnummer;
    }

    public int getMnummer() {
        return mnummer.get();
    }

    public void setMnummer(int mnummer){
        this.mnummer.set(mnummer);
    }

    public IntegerProperty mnummerProperty(){
        return mnummer;
    }

    public String getMail() {
        return mail.get();
    }

    public void setMail(String mail){
        this.mail.set(mail);
    }

    public StringProperty mailProperty(){
        return mail;
    }

}
Java:
package icontact.view;

import icontact.Launcher;
import icontact.model.Personen;
import javafx.collections.ObservableList;
import javafx.collections.transformation.FilteredList;
import javafx.collections.transformation.SortedList;
import javafx.fxml.FXML;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.TextField;

public class contactuicontroller {

    //Variablen
    //Damit FXML zugriff auf private Variablen hat, muss @FXML vorangestellt werden

    @FXML
    private TableView<Personen> tabelle;
    @FXML
    private TableColumn<Personen, String> cvname;
    @FXML
    private TableColumn<Personen, String> cnname;
    @FXML
    private TableColumn<Personen, String> cadresse;
    @FXML
    private TableColumn<Personen, Integer> cfnummer;
    @FXML
    private TableColumn<Personen, Integer> cmnummer;
    @FXML
    private TableColumn<Personen, String> cmail;
    @FXML
    private TextField filter;

    private Launcher launcher;

    public contactuicontroller(){

    }

    @FXML
    private void initialize(){

        //Spalten anlegen, beim einbinden über FXML muss diese Methode immer "initialize" heißen
        cvname.setCellValueFactory(cellData -> cellData.getValue().vnameProperty());
        cnname.setCellValueFactory(cellData -> cellData.getValue().nnameProperty());
        cadresse.setCellValueFactory(cellData -> cellData.getValue().adresseProperty());
        cfnummer.setCellValueFactory(cellData -> cellData.getValue().fnummerProperty().asObject());
        cmnummer.setCellValueFactory(cellData -> cellData.getValue().mnummerProperty().asObject());
        cmail.setCellValueFactory(cellData -> cellData.getValue().mailProperty());

        //Filtern
        //ObservableList in FilteredList packen
        FilteredList<Personen> personenListeFilter = new FilteredList<>(launcher.getPersonenListe(), p -> true);

        filter.textProperty().addListener((observable, oldValue, newValue) -> {
            personenListeFilter.setPredicate(personen -> {
                if(newValue == null || newValue.isEmpty()) {
                    return true;
                }
                String lowerCaseFilter = newValue.toLowerCase();

                if(personen.getVname().toLowerCase().contains(lowerCaseFilter)) {
                    return true;
                } else if(personen.getNname().toLowerCase().contains(lowerCaseFilter)) {
                    return true;
                }
                return false;
            });
        });

        //FilteredList in sortierte Liste
        SortedList<Personen> personenListeSortiert = new SortedList<>(personenListeFilter);

        personenListeSortiert.comparatorProperty().bind(tabelle.comparatorProperty());

        tabelle.setItems(personenListeSortiert);
    }

    public void setLauncher(Launcher launcher){
        this.launcher = launcher;

    }

}
 

derpropeller

Mitglied
Ich hab es leider doch noch nicht hinbekommen.
Ich bekomme immernoch die NullPointerException wenn ich die observableList aus dem Launcher in die FilteredList in der contactcontrollerui einpacken möchte.
 

derpropeller

Mitglied
Okay jetzt hab ich es aber hinbekommen :D

Ich hab den Teil aus dem controller der für das Filtern der tableView zuständig ist, aus der initialize methode rausgenommen und in die set Methode gepackt, die auf die Hauptklasse referenziert:


Code:
public void setLauncher(Launcher launcher){
        this.launcher = launcher;

        ObservableList<Personen> test = FXCollections.observableArrayList();

        test = launcher.getPersonen();

        FilteredList<Personen> personenListeFilter = new FilteredList<Personen>(test, p -> true);

        filter.textProperty().addListener((observable, oldValue, newValue) -> {
            personenListeFilter.setPredicate(personen -> {
                if(newValue == null || newValue.isEmpty()) {
                    return true;
                }
                String lowerCaseFilter = newValue.toLowerCase();

                if(personen.getVname().toLowerCase().contains(lowerCaseFilter)) {
                    return true;
                } else if(personen.getNname().toLowerCase().contains(lowerCaseFilter)) {
                    return true;
                }
                return false;
            });
        });

        //FilteredList in sortierte Liste
        personenListeSortiert = new SortedList<>(personenListeFilter);

        personenListeSortiert.comparatorProperty().bind(tabelle.comparatorProperty());

        tabelle.setItems(personenListeSortiert);
        //tabelle.setItems(launcher.getPersonen());

    }
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Java FX NullPointerException, ObservableList wird in View nicht angezeigt.. AWT, Swing, JavaFX & SWT 34
_user_q Objekte vom MainController in anderen Controller verwenden und andersherum (NullPointerException) AWT, Swing, JavaFX & SWT 14
Jose05 Nullpointerexception bei toArray() AWT, Swing, JavaFX & SWT 9
Jose05 NullPointerException bei Beschreiben eines Labels aus einem Array AWT, Swing, JavaFX & SWT 12
N Nur bei einem Textfiled Nullpointerexception bei getText() AWT, Swing, JavaFX & SWT 1
R NullPointerException beim Start des Fensters AWT, Swing, JavaFX & SWT 1
D JavaFX Nullpointerexception wegen TableView AWT, Swing, JavaFX & SWT 2
ZH1896ZH JavaFX kann NullPointerException nicht auflösen... :( AWT, Swing, JavaFX & SWT 3
M NullPointerException / Controller AWT, Swing, JavaFX & SWT 4
R Swing Java9 NullPointerException bei JComboBox AWT, Swing, JavaFX & SWT 13
L java.lang.NullPointerException - Fehlermeldung AWT, Swing, JavaFX & SWT 2
M NullPointerException bei Übergabe eines RadioButtons AWT, Swing, JavaFX & SWT 11
zhermann NullPointerException bei Label.setText() AWT, Swing, JavaFX & SWT 5
it_is_all jLabel.setText -> Char in Str: NullpointerException AWT, Swing, JavaFX & SWT 1
J NullPointerException bei getText() AWT, Swing, JavaFX & SWT 3
S JavaFX NullPointerException bei Versuch ImageView zu ändern AWT, Swing, JavaFX & SWT 1
K JFileChooser NullPointerException AWT, Swing, JavaFX & SWT 7
T Swing NullPointerException beim auslesen von jTextField - Anfänger! AWT, Swing, JavaFX & SWT 3
S Swing [CLOSED] NullPointerException bei BorderLayout() AWT, Swing, JavaFX & SWT 8
G Swing NullPointerException und JXImageView AWT, Swing, JavaFX & SWT 4
L exception in thread awt-eventqueue-0 java.lang.nullpointerexception AWT, Swing, JavaFX & SWT 2
U Swing NullPointerException trotz Referenz auf Textfield & Button AWT, Swing, JavaFX & SWT 6
L NullpointerException und Probleme mit repaint() AWT, Swing, JavaFX & SWT 11
G JavaFX NullPointerException bei Zugriff auf FXML Element AWT, Swing, JavaFX & SWT 0
K JavaFX Pfad öffen NullPointerException AWT, Swing, JavaFX & SWT 4
H SWT NullPointerException bei Zugriff auf Variablen des Hauptfensters AWT, Swing, JavaFX & SWT 6
L Event Handling windowAdapter - NullPointerException beim Schließen AWT, Swing, JavaFX & SWT 5
J JTable verursacht NullPointerException.Ratlos. AWT, Swing, JavaFX & SWT 5
C JButton NullPointerException AWT, Swing, JavaFX & SWT 2
Q getGraphics() - NullPointerException AWT, Swing, JavaFX & SWT 8
C NullPointerException im MVC Muster AWT, Swing, JavaFX & SWT 9
V Nullpointerexception (etwas mit thread und jframe) AWT, Swing, JavaFX & SWT 3
M JTable Drucken NullpointerException +JTable speichern AWT, Swing, JavaFX & SWT 6
T Swing Laden eines Icons auf JButton liefert NullPointerException AWT, Swing, JavaFX & SWT 8
M Exception in thread "Thread-3" java.lang.NullPointerException AWT, Swing, JavaFX & SWT 18
C Swing NullPointerException beim Hinzufügen von Checkboxes in eine ArrayList AWT, Swing, JavaFX & SWT 5
1 JComponent -> java.lang.NullPointerException AWT, Swing, JavaFX & SWT 13
B Swing NullPointerException bei actionPerformed() AWT, Swing, JavaFX & SWT 2
E java.lang.NullPointerException AWT, Swing, JavaFX & SWT 14
R NullPointerException AWT, Swing, JavaFX & SWT 16
xehpuk Swing NullPointerException: Random-Instanz anfangs nicht initialisiert AWT, Swing, JavaFX & SWT 4
3 Swing NullPointerException in AW Event-0? AWT, Swing, JavaFX & SWT 5
C SWT NullPointerException AWT, Swing, JavaFX & SWT 12
J NullPointerException bei Benutzung vom TableCellRenderer AWT, Swing, JavaFX & SWT 3
A AWT Methodenaufruf "AWT-EventQueue-0" java.lang.NullPointerException AWT, Swing, JavaFX & SWT 4
X NullPointerException beim Einfügen einer JMenuBar AWT, Swing, JavaFX & SWT 4
B NullPointerException bei JFrame AWT, Swing, JavaFX & SWT 2
D JPanel / NullPointerException AWT, Swing, JavaFX & SWT 4
G LookAndFeel Dynamisches Einlesen von LookAndFeels - NullPointerException AWT, Swing, JavaFX & SWT 4
E Login wird durch NullPointerException abgebrochen AWT, Swing, JavaFX & SWT 10
K NullPointerException ohne CodeLink AWT, Swing, JavaFX & SWT 6
L NullPointerException JFreeChart AWT, Swing, JavaFX & SWT 10
F NullPointerException - HILFE!! AWT, Swing, JavaFX & SWT 20
martinyyyy AWT Parameter erzeugen NullpointerException obwohl sie vorhanden sind? AWT, Swing, JavaFX & SWT 4
H Swing NullPointerException in JTable bei vielen Einträgen AWT, Swing, JavaFX & SWT 2
S Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException AWT, Swing, JavaFX & SWT 7
S NullPointerException bei JFileChooser AWT, Swing, JavaFX & SWT 8
X JList Probleme mit NullPointerException AWT, Swing, JavaFX & SWT 3
S NullPointerException bei Aufruf von updateUI() beim JFrame AWT, Swing, JavaFX & SWT 12
Z NullPointerException bei SplashScreen AWT, Swing, JavaFX & SWT 5
C NullPointerException bei Doppelpufferung AWT, Swing, JavaFX & SWT 3
F CardLayout.show() -> NullPointerException AWT, Swing, JavaFX & SWT 4
B NullPointerException bei String vergleich AWT, Swing, JavaFX & SWT 5
K NullPointerException bei JTextField AWT, Swing, JavaFX & SWT 8
L Problem mit "NullPointerException" bei grafischer AWT, Swing, JavaFX & SWT 3
D bei Thread in JComponent malen NullPointerException AWT, Swing, JavaFX & SWT 3
loadbrain JTextFields & java.lang.NullPointerException AWT, Swing, JavaFX & SWT 2
F JProgressBar und NullPointerException AWT, Swing, JavaFX & SWT 4
D javax.swing.Timer bringt NullPointerException AWT, Swing, JavaFX & SWT 4
R TextField bringt NullPointerException bei setVisible() AWT, Swing, JavaFX & SWT 12
A NullPointerException in einer JList AWT, Swing, JavaFX & SWT 7
F Fehler: java.lang.NullPointerException AWT, Swing, JavaFX & SWT 2
S Brauche Hilfe mit JFrame - NullPointerException AWT, Swing, JavaFX & SWT 7
A NullPointerException - warum? AWT, Swing, JavaFX & SWT 5
G NullPointerException bei Aufruf von JTabbedPane.getSelectedI AWT, Swing, JavaFX & SWT 7
G Problem mit NullPointerException AWT, Swing, JavaFX & SWT 11
M JTable verursacht NullPointerException AWT, Swing, JavaFX & SWT 8
M NullPointerException AWT, Swing, JavaFX & SWT 3
J NullPointerException bei getSelectedItem AWT, Swing, JavaFX & SWT 10
G Bekomme immer: NullPointerException AWT, Swing, JavaFX & SWT 2
W Element aus comboBox mit observableList löschen AWT, Swing, JavaFX & SWT 3
D ObservableList Werte hinzufügen AWT, Swing, JavaFX & SWT 7
missy72 JavaFX TableView / TableColumn / ObservableList / zwei Werte in einer Zelle AWT, Swing, JavaFX & SWT 2
missy72 JavaFX ObservableList in einer ArrayList speichern. AWT, Swing, JavaFX & SWT 7
M Muss man die ObservableList aktualisieren? AWT, Swing, JavaFX & SWT 3
G Bekomme ResultSet mittels ObservableList nicht ins TableView AWT, Swing, JavaFX & SWT 25
D JavaFX Listview mit observableList AWT, Swing, JavaFX & SWT 6
J ObservableList wirft exception beim zweiten füllen. AWT, Swing, JavaFX & SWT 4
F JavaFX In SampleController ObservableList zu ListView hinzufügen AWT, Swing, JavaFX & SWT 0
K JavaFX ObservableList + Fenster AWT, Swing, JavaFX & SWT 6
D JavaFX observablelist löschen AWT, Swing, JavaFX & SWT 3
X JavaFX ObservableList aktuell halten AWT, Swing, JavaFX & SWT 6
F JavaFX ObservableList -- warum funktioniert das so.... AWT, Swing, JavaFX & SWT 3
D Swing JGoodies: SelectionInList / ObservableList hört nicht auf Veränderungen in den Items AWT, Swing, JavaFX & SWT 1

Ähnliche Java Themen

Neue Themen


Oben