gpt4 book ai didi

java - 如何在 Composite GWT 中实现 SelectionEvent

转载 作者:行者123 更新时间:2023-11-30 04:22:08 25 4
gpt4 key购买 nike

我正在 GWT 中编写一个 Composite 小部件,并希望它实现 HasSelectionHander 并在组合元素出现时触发 SelectionEvent已选择

到目前为止,我有以下内容:

public class SelectionClass extends Composite implements HasSelectionHandlers<Integer>{

private final EventBus eventBus = new SimpleEventBus();

//...

private void somethingHappens(int i){
//How do i fire an event?
}

@Override
public HandlerRegistration addSelectionHandler(SelectionHandler<Integer> handler) {
return eventBus.addHandler(SelectionEvent.getType(), handler);
}

}

public AnotherClass{

// ...

SelectionClass.addSelectionHandler(new SelectionHandler<Integer>() {

@Override
public void onSelection(SelectionEvent<Integer> event) {
Window.alert(String.valueOf(event.getSelectedItem()));
}
});

// ...
}

我对如何准确地实现事件的触发有点困惑。我在 SelectionClass 中使用 EventBus 是否正确(上图)。任何帮助将不胜感激。

最佳答案

事件的触发是通过 EventBus API 完成的,在 GWT 2.4 中,您不需要实例化自己的“EventBus”实例,因为您可以委托(delegate)您的 addXXXHandler super Composite 类的方法。

它会像下面这样:

public class SelectionClass extends Composite implements HasSelectionHandlers<Integer>{

//...

private void somethingHappens(int i){
SelectionEvent.<Integer>fire(this, i);
}

@Override
public HandlerRegistration addSelectionHandler(SelectionHandler<Integer> handler) {
return super.addHandler(handler, SelectionEvent.getType());
}

}

关于java - 如何在 Composite GWT 中实现 SelectionEvent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16794632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com