Warum löst der Changelistener nicht aus ?

Joob

Top Contributor
Eigentlich wollte ich ein Binding machen, aber ich konnte da keine Methode bei Änderung starten.
Also habe ich es so versucht.
Leider haut das auch nicht hin.
Get Answer gibt einen SimpleBooleanProperty aus, sieht man ja unten.

Warum bekommt der Changelistenner es nicht mit wenn ich die Variable in der Klasse ändere (handle)?


Code:
    public void injectMCAdapterTrueFalseAnswerController (PVA00002_MCTestController mctestController,
                                                            PVA00002_DataMCTestQuest mcdataclass,
                                                            PVA00002_DataMCTestQuestAnswers answer) {
        
        this.answerclass = answer;
        mcanswer.setText(answerclass.getAnswer());
        
        answerclass.getCorrect().addListener(new ChangeListener<Object>() {
            @Override
            public void changed(ObservableValue<?> o, Object oldVal, Object newVal) {
                setcorrctstateviews ();
            }
        });
    }
    
    private void setcorrctstateviews () {
        System.out.println("OK soweit so gut");
    }
    
    public void handleclickwrong() {
        
        System.out.println("im click - " + answerclass.getCorrect().get());
        answerclass.setCorrect( new SimpleBooleanProperty(false));
        if (answerclass.getCorrect().get() == true) {
            answerclass.setCorrect( new SimpleBooleanProperty(false));
        } else {
            answerclass.setCorrect( new SimpleBooleanProperty(true));
        }
        System.out.println("im click - " + answerclass.getCorrect().get());
        
    }
 
Vielleicht könntest du mal einschätzen ob mein Plan Aussicht auf Erfolg hat.
Ich habe folgendes vor:

In einer Splitpane wird jede Pane über den Controller mit einer Klasse versehen.
Die Klassen liegen in einer Liste.
In der Pane werden die Klassenvariablen vom user verändert.
Dann wird die Liste in einer anderen Klasse durchgegangen und ggf. correct verändert.
Durch die Veränderung wird die Methode aufgerufen und in der Pane werden einige Elemente angezeigt oder ausgeblendet.

Meinst du das das geht ?
 
Alles geht irgendwie, von deiner Beschreibung versteh ich allerdings nichts...


Wenn du Klassen sagst, meinst du dann Class-Objekte? Oder normale Objekte? Oder hast du eine Klasse, die „Klasse“ heißt, und meinst Instanzen davon?

Das gleiche für Klassenvariablen, normale statische Variablen meinst du damit hoffentlich nicht?
 
Ich machs erst mal.
Bin auch schon angefangen, und scheint zu funktionieren.
Mal sehen ob es sich so umsetzen lässt.

Ich kann das noch nicht so gut beschreiben weil ich es noch nicht probiert habe.
Trotzdem schönen Dank für deine Antwort.
 

Zurück
Oben