1. Inleiding
De PDF van het document is beschikbaar |HIER|.
De voorbeelden uit het document zijn beschikbaar |HIER|.
1.1. Contexte
Dit document is niet bedoeld voor beginners, maar voor gebruikers met ruime ervaring in Java. Het maakt gebruik van de volgende bronnen:
In tegenstelling tot andere documenten die ik heb geschreven, is dit document vooral gebaseerd op voorbeelden en gaat het niet diep in op de theorie. Elk voorbeeld wordt echter vergezeld van een uitleg en er is een logische opbouw in het document.
ReactiveX is een verzameling bibliotheken die asynchroon programmeren en het gebruik van de aldus verkregen gegevens vergemakkelijken:
![]() |
![]() |
![]() |
De Rx-bibliotheek is in veel programmeertalen geïmplementeerd:
![]() |
We richten ons hier op de volgende bibliotheken:
- RxJava voor de Java-wereld;
- RxAndroid, een specialisatie van RxJava voor de Android-omgeving;
- RxSwing, een specialisatie van RxJava voor de Swing-omgeving;
De concepten van reactief programmeren zijn op het eerste gezicht complex. Daarom is dit document in principe niet bedoeld voor beginners. Ik heb echter veel moeite gedaan om de gebruikte code uit te leggen en een beginnende gebruiker kan met dit document vertrouwd raken met reactief programmeren.
1.2. De gebruikte tools
De volgende voorbeelden zijn getest met de volgende werkomgeving:
1.3. De codevoorbeelden
De codevoorbeelden die hierna volgen, zijn te vinden |ICI| in de map [dvp/exemples].
![]() | ![]() |
De map [dvp/exemples] [2] is die van een Gradle-project dat de meeste voorbeelden uit dit document bevat. Deze map kan worden geopend door alle IDE die de Gradle-projectmanager [http://gradle.org/] ondersteunen. IntelliJ IDEA ondersteunt dit standaard. Voor Eclipse of NetBeans is een plug-in nodig. Met IntelliJ IDEA Community Edition kunt u als volgt te werk gaan:
![]() | ![]() |
Het project [exemples] wordt geconfigureerd via het volgende bestand: [build.gradle] [4]:
buildscript {
repositories {
mavenCentral()
}
}
apply plugin: 'java'
jar {
baseName = 'exemples-01'
version = '0.0.1-SNAPSHOT'
}
repositories {
mavenCentral()
}
dependencies {
compile('io.reactivex:rxswing:0.25.0')
compile('io.reactivex:rxjava:1.1.3')
compile('com.fasterxml.jackson.core:jackson-databind:2.7.3')
}
task wrapper(type: Wrapper) {
gradleVersion = '2.9'
}
- regels 18-22: de Gradle-afhankelijkheden van het project (de bibliotheken die moeten worden gedownload);
- regel 19: de bibliotheek die nodig is voor het Swing-voorbeeld dat in paragraaf 2 wordt behandeld;
- regel 20: de bibliotheek RxJava;
- regel 21: een bibliotheek jSON;
- regels 9-12: de kenmerken van het Jar-archief dat door de compilatie van het project wordt gegenereerd;
Ga als volgt te werk om de benodigde afhankelijkheden voor het project te downloaden: [1-4]:
![]() | ![]() |









