Skip to content

Commit 0ffce00

Browse files
committed
Añadido ejemplo de ObservableList de JavaFX (Patrón Observer)
1 parent ba6464e commit 0ffce00

File tree

5 files changed

+105
-1
lines changed

5 files changed

+105
-1
lines changed

JavaFXObservableList/pom.xml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<modelVersion>4.0.0</modelVersion>
6+
7+
<groupId>org.example</groupId>
8+
<artifactId>JavaFXObservableList</artifactId>
9+
<version>1.0-SNAPSHOT</version>
10+
11+
<properties>
12+
<maven.compiler.source>11</maven.compiler.source>
13+
<maven.compiler.target>11</maven.compiler.target>
14+
</properties>
15+
16+
<dependencies>
17+
<dependency>
18+
<groupId>org.projectlombok</groupId>
19+
<artifactId>lombok</artifactId>
20+
<version>1.18.18</version>
21+
</dependency>
22+
<dependency>
23+
<groupId>org.openjfx</groupId>
24+
<artifactId>javafx-controls</artifactId>
25+
<version>14</version>
26+
</dependency>
27+
28+
</dependencies>
29+
30+
</project>
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package com.sanvalero.javafxobservablelist;
2+
3+
import com.sanvalero.javafxobservablelist.domain.Cinema;
4+
import com.sanvalero.javafxobservablelist.domain.Movie;
5+
import javafx.collections.FXCollections;
6+
import javafx.collections.ObservableList;
7+
8+
public class Application {
9+
public static void main(String[] args) {
10+
Movie movie = Movie.builder()
11+
.title("Rocky")
12+
.summary("Pelicula de boxeo")
13+
.duration(120)
14+
.build();
15+
Cinema cinema = Cinema.builder()
16+
.name("Cinema1")
17+
.build();
18+
ObservableList<Movie> movies = FXCollections.observableArrayList(movie);
19+
movies.addListener(cinema);
20+
21+
movies.remove(0);
22+
movies.add(Movie.builder().title("Terminator 2").build());
23+
}
24+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package com.sanvalero.javafxobservablelist.domain;
2+
3+
import javafx.collections.ListChangeListener;
4+
import lombok.Builder;
5+
import lombok.Data;
6+
import lombok.EqualsAndHashCode;
7+
import lombok.ToString;
8+
9+
@Data
10+
@Builder
11+
@ToString
12+
@EqualsAndHashCode
13+
public class Cinema implements ListChangeListener<Movie> {
14+
15+
private String name;
16+
@EqualsAndHashCode.Exclude
17+
private String address;
18+
19+
@Override
20+
public void onChanged(Change<? extends Movie> change) {
21+
while (change.next()) {
22+
if (change.wasRemoved()) {
23+
System.out.println("Se ha eliminado una pelicula: " + change.getRemoved().get(0));
24+
} else if (change.wasAdded()) {
25+
System.out.println("Se estrena una nueva pelicula: " + change.getAddedSubList().get(0));
26+
}
27+
}
28+
}
29+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package com.sanvalero.javafxobservablelist.domain;
2+
3+
import lombok.Builder;
4+
import lombok.Data;
5+
import lombok.EqualsAndHashCode;
6+
import lombok.ToString;
7+
8+
@Data
9+
@Builder
10+
@ToString
11+
@EqualsAndHashCode
12+
public class Movie {
13+
14+
private String title;
15+
@EqualsAndHashCode.Exclude
16+
private String summary;
17+
@EqualsAndHashCode.Exclude
18+
private int duration;
19+
}

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# java-reactiva
2-
Proyectos de ejemplo de Programación Reactiva
2+
Proyectos de ejemplo de Programación Reactiva.
3+
También habrá algunos proyectos sobre Patrón Observer, Streams, Future y CompletableFuture a modo de introducción
34

5+
- **JavaFXObservableList**: Proyecto de ejemplo de Patrón Observer con ObservableList de JavaFX
46
- **IntroRxJava**: Proyecto con ejemplos de introducción a RxJava
57
- **EjemploRetroFit**: Ejemplo de cómo consumir una API utilizando RetroFit
68
- **EjemploRetroFitRxJava**: Ejemplo de cómo consumir una API utilizando RetroFix y RxJava

0 commit comments

Comments
 (0)