gpt4 book ai didi

java - 复合小部件的 ClickListener

转载 作者:行者123 更新时间:2023-12-01 16:09:40 25 4
gpt4 key购买 nike

我有一个由文本框和自定义小部件组成的复合小部件,然后将其添加到 VerticalPanel 中。我使用 Raphael JS 创建了这个自定义小部件。

现在我希望这个复合小部件能够识别单击事件和 ctrl 事件。我尝试在这两个类中实现 clicklistener,但没有取得丰硕的成果。

这是代码布局:

此类从 Raphael JS 创建自定义小部件:

public class CustomShapeRet extends RaphaelJSWidget{

public CustomShapeRet(){
super();
Rectangle r = new Rectangle(10, 10, 50, 20);

r.attr("stroke", "black");
r.attr("stroke-width", "5");
}
}

此类在此处创建复合小部件:

public class Test extends Composite{

public Test(){
TextBox t1 = new TextBox();
t1.setSize("100px", "20px");
t1.setText("Hi");
t1.setTitle("textbox");

CustomShapeRet r = new CustomShapeRet();
r.setTitle("rec");

VerticalPanel v1 = new VerticalPanel();
v1.setStyleName("vertical");
v1.add(r);
v1.add(t1);
initWidget(v1);
}
}

问题: 有办法让它发挥作用吗?您的建议是什么?

谢谢。

最佳答案

您必须在“测试”复合小部件中实现 HasClickHandler 接口(interface)。它将强制您实现 addClickHandler 方法。然后您可以添加 clickHandler。您可以根据您的要求实现以下所有 iterfacesHasAllFocusHandlers、HasAllKeyHandlers、HasAllMouseHandlers。如果您想为 CustomShapeRet 添加点击监听器,那么也实现那里的接口(interface)。有关示例代码,请查看以下线程:

How do I add MouseEvents to an AbsolutePanel?

试试这个。我对 RaphaelJSWidget 没有任何想法。

public class CustomShapeRet extends RaphaelJSWidget implements HasClickHandler{

public CustomShapeRet(){
super();
Rectangle r = new Rectangle(10, 10, 50, 20);

r.attr("stroke", "black");
r.attr("stroke-width", "5");
}

public HandlerRegistration addMouseOutHandler(MouseOutHandler handler) {
return addDomHandler(handler, MouseOutEvent.getType());
}
}

我假设您的 RaphelJSWidget 类扩展了 Widget 类。如果是这样,您可以添加点击处理程序。它应该可以工作。

关于java - 复合小部件的 ClickListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1735460/

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