gpt4 book ai didi

java - 避免在每次点击时创建新的 ClickHandler 实例

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

我在这个问题上坐了 4 个小时,然后我再次出现在 Stackoverflow 上,因为我无法解决这个(简单的)问题。

我想在单击按钮时触发一个方法,Google 给出了这样的示例:

// Listen for mouse events on the Add button.
addStockButton.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
addStock();
}
});

但这会在每次单击按钮时创建一个新实例(?..他们怎么可能创建 Clickhandler 的实例,因为它是一个接口(interface))。我该如何解决这个问题,所有按钮共享一个 Clickhandler,并且处理程序询问按钮他是哪个按钮,以便他可以触发附加到该按钮的方法。

有什么想法吗?如果您这是为了获取信息并且需要更多代码,请告诉我。

提前致谢,丹尼尔

最佳答案

Java 创建一个实现 ClickHandler 的匿名类的新实例。它可以做到这一点,因为您提供了接口(interface)指定的 onClick 函数的实现。

但是,当您单击按钮时,而是在调用 addClickhandler 时,不会创建此类。如果您需要多个事件的处理程序,请执行以下操作:

ClickHandler handler = new ClickHandler() {
public void onClick(ClickEvent event) {
addStock();
}
};
addStockButton.addClickHandler(handler);
someOtherButton.addClickHandler(handler);

在处理程序中,您可以使用 event.getSource() 识别事件的来源。

如果您有权访问按钮变量,您只需检查指针即可

if (addStockButton == event.getSource()) ...

或者您可以将 getSource 的结果转换为适当的类型并访问对象的属性/方法。

关于java - 避免在每次点击时创建新的 ClickHandler 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5581162/

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