A simple library implementing an event emitter in Java, made to use closures. It's way simpler and shorter than Swing's crappy EventListener
.
See the page on search.maven.org for Gradle of Maven configuration per version.
// ExampleClass.java
package example;
import eventemitter.EventEmitter;
import lombok.Getter;
import lombok.NonNull;
public class ExampleClass {
@Getter
private final EventEmitter<String> statusChanged = new EventEmitter<>();
@Getter
@NonNull
private String status = "";
public void setStatus(String stat) {
this.status = stat;
this.getStatusChanged().trigger(stat);
}
}
// ExampleConsumer.java
package example;
public class ExampleConsumer {
public static void main(String[] args) {
ExampleClass e = new ExampleClass();
e.getStatusChanged().addConsumer((s) -> {
System.out.println("New status is " + s);
});
e.setStatus("waiting");
}
}