提问者:小点点

JavaFX用户界面和客户端服务器应用程序的组合;将客户端连接到服务器以及许多其他问题


    < li >问题:客户端不再连接到服务器。 < li >我需要UI的不同对象,这些对象在我的main中的应用程序类的start-Method中初始化。我如何将它们传递给main?

完整的背景:我对整个应用程序的目标是创造一个多人可以玩的小游戏。它将非常简单,只有几个按钮和标签,最后还应该有一种玩家互动的方式。我还希望这个游戏可以通过服务器访问,每个玩家都有一个帐户,由用户名和密码组成。因为我是Java编程的新手,我知道——目前——完全超出了我的能力范围。但是我正在一点一点地学习我需要的一切,以便到达那里。

重要的部分:我设法将服务器和客户端与UI本地连接,但无法让我的程序创建帐户,这些帐户应存储在我的“帐户数据库”中。这导致没有人能够成功“登录”(此处通过显示消息“登录成功!试图解决这个问题,发现我需要为多个客户端使用线程,并几乎完全重写了我的代码。现在我什至无法将客户端连接到服务器...我尝试了很多东西,重写了这么多代码,以至于我不知道出了什么问题了。如果这里有人可以看看我可能超级混乱的代码,看看我需要在这里做什么,我将不胜感激。

我的主类代码:

公共类Main扩展应用程序{

@Override
public void start(Stage primaryStage) {
    LoginUI loginUI = new LoginUI(primaryStage);
    loginUI.setScene(primaryStage, loginUI.getScene());
    primaryStage.show();
}

public static void main(String[] args) {
    launch(args);
    InetAddress ip = null;
    try {
        ip = InetAddress.getByName("localhost");
    } catch (UnknownHostException e) {
        e.printStackTrace();
    }
    Client client = new Client(ip, 9376);
    loginUI.getSignUpUI().setSignUpButtonAction(client);
    //how do I get the instance of LoginUI instantiated in the start-Method?
}

}

预期结果:客户端连接到服务器,UI(LoginUI)显示为具有重定向到(SignUpUI)的超链接。该场景应允许用户输入用户名和密码,检查“AccountDataBase”中是否存在具有该用户名的现有帐户,并在可能的情况下最终创建帐户。回到(LoginUI)中,用户还应该能够输入用户名和密码,将其与我的“帐户数据库”中的帐户数据进行比较,并让用户登录。

实际结果:在重写代码以使用线程后,客户端不会连接到服务器。我最远的一次是建立了一个连接,但是无法创建新的账户,因为用户输入的账户日期可能没有存储在账户数据库中...

如果你已经做到了这一点,你可能需要看看我写的其他类的代码。我只是没有发布它们 bc 堆栈溢出告诉我不要发布整个文件......如果您需要更多代码,请随时告诉我!


共1个答案

匿名用户

这样地

public class Main extends Application {
    LoginUI loginUI
@Override
public void start(Stage primaryStage) {
    loginUI = new LoginUI(primaryStage);
    loginUI.setScene(primaryStage, loginUI.getScene());
    primaryStage.show();
}

public static void main(String[] args) {
    launch(args);
InetAddress ip = null;
try {
    ip = InetAddress.getByName("localhost");
} catch (UnknownHostException e) {
    e.printStackTrace();
}
Client client = new Client(ip, 9376);
loginUI.getSignUpUI().setSignUpButtonAction(client);
//how do I get the instance of LoginUI instantiated in the start-Method?
}
}