Я думаю, что в Java нет аналогичного способа (исходя из того, что в исходном коде нет аналогичной структуры).
Но вы можете реализовать свой собственный обработчик:
- Определить интерфейс обработчика (# 1)
- Добавить метод соединения (# 2, # 3)
- Добавить метод emit (# 4)
Пример кода:
public class MyCheckButton extends CheckButton {
// ...
private MySignalHandler handler; // #2
public interface MySignalHandler { // #1
public void onMySignal(int value);
}
public void connect(MySignalHandler handler) { // #3
this.handler = handler;
}
public void emitMySignal(int value) { // #4
if (handler == null) return;
handler.onMySignal(value);
}
}
И тогда вы можете подключаться и излучать так же, как и другие события.
MyCheckButton a = new MyCheckButton();
a.connect(new MyCheckButton.MySignalHandler() {
public void onMySignal(int value) {
System.out.println(value);
}
});
a.emitMySignal(10);
Встроенный Button
использует нечто подобное для определения события щелчка, добавляя connect(Clicked handler)
и emitClicked()
( исходный код )