gpt4 book ai didi

gwt - 如何在 GWT 1.6 中向复合面板添加事件处理程序

转载 作者:行者123 更新时间:2023-12-05 00:43:38 26 4
gpt4 key购买 nike

这可能是一件非常简单的事情,但我不知道如何实现以下内容。

package mods.client.resultSelector;

import com.google.gwt.event.dom.client.MouseDownEvent;
import com.google.gwt.event.dom.client.MouseDownHandler;
import com.google.gwt.user.client.ui.AbsolutePanel;
import com.google.gwt.user.client.ui.Composite;

public class MousyAbsolutePanel extends Composite implements MouseDownHandler {

AbsolutePanel abs = new AbsolutePanel();

public MousyAbsolutePanel(int width){
System.out.println("MousyAbsolutePanel being created with width:" + width);
initWidget(abs);
abs.setWidth(String.valueOf(width));
abs.setHeight("100%");
abs.setStyleName("mousyAbsolutePanel");
}

public void onMouseDown(MouseDownEvent event) {
System.out.println("onMouseDown()");
}

}

我想要一个可以接受鼠标事件的有效绝对面板。但是,在 Composite 对象中,我不知道如何将我编写的处理程序(onMouseDown() 事物)与 abs 变量联系起来。简而言之,我希望 abs AbsolutePanel 在被点击时做出响应,但 AbsolutePanels 不会自然地接受点击事件。我该怎么做?

如果这是愚蠢的简单,请提前道歉,但我不太知道如何实现这种行为,而且我没有在我所做的搜索中看到它提到它。

最佳答案

在这种情况下,扩展 Composite 可能不是最好的主意,除非您故意阻止访问您在构造函数中创建的 AbsolutePanel。如果您扩展 AbsolutePanel,您将能够重用代码来添加/删除小部件等。

以下是我建议您这样做的方法:

package mods.client.resultSelector;

import com.google.gwt.event.dom.client.MouseDownEvent;
import com.google.gwt.event.dom.client.MouseDownHandler;
import com.google.gwt.event.dom.client.HasMouseDownHandlers;
import com.google.gwt.user.client.ui.AbsolutePanel;


public class MousyAbsolutePanel extends AbsolutePanel implements
MouseDownHandler,HasMouseDownHandlers {

public MousyAbsolutePanel(int width) {
System.out.println("MousyAbsolutePanel being created with width:" + width);

this.setWidth(String.valueOf(width));
this.setHeight("100%");
this.setStyleName("mousyAbsolutePanel");

this.addMouseDownHandler(this);
}

/**
* MouseDownHandler
*/
public void onMouseDown(MouseDownEvent event) {
System.out.println("onMouseDown()");
}

/**
* HasMouseDownHandlers - Code to add handlers to the panel
*/
public HandlerRegistration addMouseDownHandler(MouseDownHandler handler) {
return addDomHandler(handler, MouseDownEvent.getType());
}

}

然后,您可以像访问 AbsolutePanel 一样访问 MousyAbsolutePanel,但使用额外的事件处理程序、样式等。

关于gwt - 如何在 GWT 1.6 中向复合面板添加事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/831168/

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