如何给GXT FramedPanel的header添加点击事件

How to add a click event to the header of the GXT FramedPanel

是否有标准或简单的方法将点击事件/处理程序添加到 GXT FramedPanel 的 header?

我想将点击事件转发给 FramedPanel 的展开/折叠方法,因此用户不必明确点击 header 的小按钮,而是可以使用整个 header.

谢谢:)

我已经解决了这样的问题:

import com.google.gwt.user.client.Event;

FramedPanel randomFramedPanel = ...;
XElement headerElement = randomFramedPanel.getHeader().getElement();
Event.sinkEvents(headerElement, Event.ONCLICK);
Event.setEventListener(headerElement, new EventListener() {
    @Override
    public void onBrowserEvent(com.google.gwt.user.client.Event event) {
        if (Event.ONCLICK == event.getTypeInt()) {
            // Do something...
        }
    }
});

请记住,面板必须附加到 dom 才能接收事件,因此最终您也必须检查它。

如果您知道更聪明的解决方案,请告诉我:)