我环顾四周,只找到了一个答案,至少对我来说还不够清楚。
我正在使用 GUI 构建一个非常基本的聊天应用程序,并将 GUI 与连接部分分开。现在我需要从服务器类中的 GUI 调用一种方法,反之亦然。但我不太明白该怎么做(即使是“这个”)。部分代码如下(这是一个名为 server_frame 的类):
textField.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
try {
srv.sendData(arg0.getActionCommand());
} catch (Exception e) {
e.printStackTrace();
}
textField.setText("");
}
}
);
这是来自 server_frame 的代码,srv 是来自另一个类(服务器)的对象,其中包含 sendData 方法,我可能没有正确定义它,所以希望有人可以对其进行定义。
另一方面,生成对象 srv 的类服务器包含使用以下代码中 server_frame 中的 JTextArea displayArea 的方法:
private void displayMessage(final String message){
sf = new server_frame();
SwingUtilities.invokeLater(new Runnable(){
public void run(){
sf.displayArea.append(message);
}
}
);
}
sf 再次是一个由 server_frame 组成的对象,并且可能再次被错误定义:)
希望这足够清楚,遗憾的是我尝试了搜索,但它只是没有给我想要的结果,如果您需要更多信息,我会很乐意添加它!
谢谢阅读,
Mr.P.
附:如果我犯了术语错误,请不要介意,我对 java 仍然很陌生,并且愿意接受任何更正!
某个类必须同时构建这两个对象——GUI 和服务器——并且它应该让每个对象都知道对方。例如,假设主类是ServerApplication
。为了清楚起见,我将使用标准 Java 约定,以大写字母开头类名。
class ServerApplication {
Server server;
ServerFrame gui;
public static void main(String []) {
server = new Server(...);
gui = new ServerFrame(server);
server.setGui(gui);
}
}
每个类也应该存储对另一个类的引用。
class Server {
ServerFrame gui;
public void setGui(ServerFrame gui) {
this.gui = gui;
}
...
}
class ServerFrame extends JFrame {
Server server;
public ServerFrame(Server server) {
this.server = server;
}
...
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)