gpt4 book ai didi

java - Java 中的事件处理,面向 vb.net 专家

转载 作者:搜寻专家 更新时间:2023-11-01 03:09:10 24 4
gpt4 key购买 nike

我找到了大量关于处理现有 Java 类事件的帖子,但没有找到关于从头开始创建带有事件的类的帖子。
这个 vb.net 片段的 java 翻译是什么?

Public Class TestClass
Event TestEvent()
Sub TestFunction()
RaiseEvent TestEvent()
End Sub
End Class
Public Class Form1
Dim WithEvents TC As New TestClass
Sub OnTestEvent() Handles TC.TestEvent
End Sub
End Class

谢谢。

最佳答案

这是关于 Java 事件模型背后的“理论”的一个很好的链接:

这是一个说明如何创建您自己的自定义事件的链接:

这是来自 SO 的一个非常好的例子:

// REFERENCE: https://stackoverflow.com/questions/6270132/create-a-custom-event-in-java
import java.util.*;

interface HelloListener {
public void someoneSaidHello();
}


class Initiater {
List<HelloListener> listeners = new ArrayList<HelloListener>();

public void addListener(HelloListener toAdd) {
listeners.add(toAdd);
}

public void sayHello() {
System.out.println("Hello!!");

// Notify everybody that may be interested.
for (HelloListener hl : listeners)
hl.someoneSaidHello();
}
}


class Responder implements HelloListener {
@Override
public void someoneSaidHello() {
System.out.println("Hello there...");
}
}


class Test {
public static void main(String[] args) {
Initiater initiater = new Initiater();
Responder responder = new Responder();

initiater.addListener(responder);

initiater.sayHello();
}
}

关键是:

1) 创建一个定义你的“事件”的“接口(interface)”(比如AWT事件模型中的事件)

2) 创建一个“实现”此事件的类(类似于 C 等语言中的“回调”——实际上是 VB 使用“事件”类型自动为您所做的事情)。

'希望能有所帮助......至少有一点!

关于java - Java 中的事件处理,面向 vb.net 专家,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14115289/

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