Selektion aus einer ListView

MiMa

Top Contributor
Derzeit werte ich die Informationen von Dateien in einer ListView aus.
Vor der Selektion habe ich ein neues DateiObjekt erstellt und die werte der Datei in der Methode "changed" dann die Werte zu speichern.
Innerhalb der "chnaged" Methode werden die Werte noch ins LOG geschrieben und soweit funktioniert auch alles.
Ausserhalbe der Methode habe ich dann die Werte des DateiObjektes nochmal in das Log schreiben wollen, aber der Wert ist null ???
Zu Anfang der Klasse habe ich die Variable deklariert "private Datei datei;" da die Werte über getter und setter Methoden zugegriffen werden können.
Vor dem SelectionModel habe ich die das Objekt neu erstellt, um jeder selektion einer neuen Datei zu zuordnen zu wollen.
Code:
INFO  indexer.fenster.links.DateiListeVC - QuellPfad : N:/Quelle
INFO  indexer.modell.Datei - Einlesen der Dateien - beginnt
INFO  indexer.modell.Datei - Einlesen der Dateien - beendet
INFO  indexer.fenster.links.DateiListeVC - Dateiname : null
INFO  indexer.fenster.links.DateiListeVC - Datei     : null
INFO  indexer.fenster.links.DateiListeVC - Dateiname : Microsoft Visio Drawing (neu).vsdx
INFO  indexer.fenster.links.DateiListeVC - Datei     : N:\Quelle\Microsoft Visio Drawing (neu).vsdx
Was mich ebenfalls wundert, das die Logausgabe mit null werten vorher ausgegeben wurde??
In der change Methode werden die richtigen Werte ausgegeben, die kommen aber erst stäter, obwohl die innherlab der Methode sind?
Code:
// Definiert eine einzelne Selektion in der Liste
        dateiListView.getSelectionModel().setSelectionMode(SelectionMode.SINGLE);
        datei = new Datei();
        // Gibt die selektierte Datei zurück
        dateiListView.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<Datei>() {
            @Override
            public void changed(ObservableValue<? extends Datei> observable, Datei oldValue, Datei newValue) {
                LOG.info("Dateiname : " + newValue.holeDateiName());
                LOG.info("Datei     : " + newValue.holeDateiQuelle());
        
                datei.speichernDateiName(newValue.holeDateiName());
                datei.speichernDateiQuelle(newValue.holeDateiQuelle());
            }
        });
        LOG.info("Dateiname : " + datei.holeDateiName());    // null
        LOG.info("Datei     : " + datei.holeDateiQuelle()); // null
Warum werden die null objekte die ausserhalb der Methode noch vor der richtigen Ausgabe innderhalb der Methode geloggt?
Warum enthält das DateiObjekt denn überhaupt null Werte?

Ich habe heraus gefunden, das vor der Selektion keine Werte enthalten sind und daher sind diese null.
Die Dateiobjekte enthalten dann auch die Werte. Da ich immer nur die Selektion einer Datei zulasse, konnte ich das vorher nicht feststellen.
Danke
Mi
 
Zuletzt bearbeitet:
Ja, hat sich erledigt, danke der Nachfrage.
Schade nur, das es noch nicht so viel Literatur für gewisse Dinge gibt.
 
Naja, es gibt das JavaDoc und auch einen Haufen Literatur zu Java generell
Natürlich gibt es da eine Menge und ich habe das Gefühl das alle voneinander abschreiben.
Jeder macht einen Taschenrechner, eine Single Window Applikation und das war es auch schon und weiter als Grundlagen findet man kaum, genau so wie eine Multi Window Applikation arbeitet, wie der Verlauf ist usw.
 
Naja, alles andere wäre zu viel für den Einstieg 😉

Gibt aber auch Bücher, die da drüber hinaus gehen, sind dann aber deutlich abstrakter gehalten.
zB Patterns of Enterprise Application Architecture geht in die Richtung, von Fowler gibts auch 'nen recht guten Blog.
Gang of Four sollte jeder kennen, betrifft aber nicht wirklich die Architektur. Die Bücher von Bob Martin sind auch ganz gut
 

Zurück
Oben