0
我在我的場景中有2個listViews和2個自定義控件。當我按ListView中的項目時,我想提出事件,然後能夠在應用程序中的其他任何地方處理。理想情況下,我希望我的2個自定義控件偵聽此事件,並在提出時處理它。JavaFX事件/偵聽器/處理程序
不知道這是正確的,但到目前爲止,我有這個
這裏是我的自定義事件,我也想在一個參數,它的報價是,不知道怎麼做雖然這通過?
public class OfferChangedEvent extends Event {
private static final long serialVersionUID = 1L;
public static final EventType<OfferChangedEvent> OFFER_CHANGED = new EventType<OfferChangedEvent>(ANY, "OFFER_CHANGED");
public OfferChangedEvent() {
this(OFFER_CHANGED);
}
public OfferChangedEvent(EventType<? extends Event> arg0) {
super(arg0);
}
public OfferChangedEvent(Object arg0, EventTarget arg1, EventType<? extends Event> arg2) {
super(arg0, arg1, arg2);
}
}
現在我的自定義控件之一,我擡起事件單擊按鈕時,像這樣
@FXML
public void showOffer(ActionEvent event) {
Button btnView = (Button)event.getSource();
// can i pass in parameter of the offer here??
btnView.fireEvent(new OfferChangedEvent());
}
現在我想一個ListView監聽事件和處理它,我有這個,但它不起作用
// when offer is changed, we dont want to see events
this.eventListPane.addEventHandler(OfferChangedEvent.OFFER_CHANGED, new EventHandler<OfferChangedEvent>() {
@Override
public void handle(OfferChangedEvent event) {
Console.Log("Recived");
eventListPane.setVisible(false);
// How can i get the argument of the offer passed???
}
});
謝謝我使用Google Guava Event Bus。 – Gillardo 2015-02-12 11:07:47