Hinzufügen eines Listeners zu einer Variablen in Java / JavaFX, die bei einer Variablenänderung aufgerufen wird

7

Ich weiß, dass es Listener in JavaFX gibt, und ich bin mir sicher, Java. Aber ich bin verwirrt, wie man sie umsetzt.

Ich habe eine boolesche Variable, die in meinem Programm geändert wird. Jedes Mal, wenn der boolesche Wert geändert wird, möchte ich eine Funktion myFunc () ausführen.

Kann das leicht gemacht werden?

    
CREW 01.04.2012, 23:47
quelle

5 Antworten

4

So einfach ist das:

%Vor%

und wann immer Sie das boolesche Flag ändern möchten, sollten Sie dies über diese Methode tun

    
Eng.Fouad 01.04.2012, 23:52
quelle
22

Wenn Sie JavaFX 2 verwenden, bietet es eine Out-of-Box-Lösung für die JavaBeans-Komponentenarchitektur und das Observer-Entwurfsmuster. Außerdem bietet es eine große Flexibilität, den Zustand von Variablen durch die Eigenschaftsbindungen zu assoziieren. Der folgende Code veranschaulicht die geänderten Ereignisse und die Bindung von Eigenschaftsvariablen. Natürlich können Sie die Eigenschaften-Accessoren so umschließen, dass Details wie getFlag() und setFlag() darunter verborgen bleiben, und sie im Rest der Anwendung verwenden.

%Vor%     
Uluk Biy 02.04.2012 12:52
quelle
2

Ich würde es mit PropertyChangeListener machen. Hier ist ein nettes Tutorial: Ссылка

Beispielcode:

%Vor%     
ceklock 14.12.2012 23:28
quelle
0

Es gibt 2 Lösungen für Ihr Problem

  1. Wenn Sie Java verwenden, müssen Sie Listener (selbst) zu Ihrer Bean hinzufügen und dann die Listener-Methoden für die Setter-Methode (wiederum selbst) aufrufen und die Variable privat machen , so kann es nur durch Ihre Setter-Methode geändert werden.
  2. Die zweite Lösung verwendet ein reines AOP-Framework (ich weiß, AspectJ kann dies tun), das die Modifikation Ihrer Variablen abfangen kann und dann Ihren Listener mit einem Aspekt aufrufen kann. Ich erwähne das mit @AspectJ (Annotation-Unterstützung von AspectJ), Ihre Aspekte wären reine Java-Klassen, und es besteht keine Notwendigkeit für eine AspectJ-Support-IDE.
Amir Pashazadeh 01.04.2012 23:55
quelle
0

U kann das Observer-Entwurfsmuster verwenden. Einfach so:

%Vor%     
Joey 02.04.2012 01:38
quelle

Tags und Links