抱歉我的标题令人困惑,但我不知道更好。 我有两个类(class):
第一个类(称为 MainClass
)创建一个包含 Socket 的 GUI。当从 Socket 类接收到任何数据时,onReceived()
将被调用。因此,在这个 onReceived() 方法中,我想要一种将消息发送回 MainClass 的方法,以便 MainClass 可以知道位置已更改并调用 setPostion() 。
那么执行此操作的正确方法是什么(如有必要,请纠正我的模型以获得更好的实践)。谢谢
最佳答案
您可以执行以下操作;
定义监听器接口(interface):
public interface MyListener(){
public void doNotify(String message);
}
Socket 类(有一种方法来添加在 onRecieve() 上通知的监听器):
public class SocketClass {
private List<MyListener> listeners = new ArrayList<MyListener>();
public void addListener(MyListener listener) {
listeners.add(listener);
}
public void onRecieve(){
/* your code*/
for (MyListener l : listeners)
l.doNotify("Socket has recieved something ;P");
}
}
Gui 类有一个传递监听器的方法:
public class GuiClass() {
SocketClass s = new SocketClass();
public void addListener(MyListener listener) {
s.addListener(listener);
}
}
最后是主类(实现监听器接口(interface)并将其自身添加到 GuiClass 作为监听器):
public class MainClass implements MyListener {
public static void main(String[] args)
{
GuiClass g = new GuiClass();
g.addListener(this);
}
public void doNotify(String message) {
System.out.println(message);
setPostition();
}
private void setPosition()
/* your code here */
}
}
THIS 也是一个很好的例子.
祝你好运,并致以问候
关于java - 关联关系中调用父方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24819334/