【问题标题】:I set params but they still null我设置了参数但它们仍然为空
【发布时间】:2022-12-15 19:47:49
【问题描述】:

我不想创建聊天所以我有服务器和客户端;服务器代码:

            serverSocket = new ServerSocket(8080);
            mainSocket = serverSocket.accept();
            out = new PrintWriter(mainSocket.getOutputStream());
            in = new BufferedReader(new InputStreamReader(mainSocket.getInputStream()));
            gui = new JavaFXGUI();
            gui.setIn(in);
            gui.setOut(out);
            gui.run()

客户端代码:

            clientSocket = new Socket("127.0.0.1", 8080);
            out = new PrintWriter(clientSocket.getOutputStream());
            in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));

            gui = new JavaFXGUI();
            gui.setIn(in);
            gui.setOut(out);
            gui.run()

JavaFX图形用户界面:

public class JavaFXGUI extends Application{
    private BufferedReader in;
    private PrintWriter out;
    private ChatController chatController;

    @Override
    public void start(Stage primaryStage) throws Exception {
        FXMLLoader loader = new FXMLLoader();
        URL xmlUrl = getClass().getResource("/GUI/scenes/mainScene.fxml");
        loader.setLocation(xmlUrl);
        System.out.println(in);
        chatController = new ChatController(out,in);

        loader.setController(chatController);
        Parent root = loader.load();

        primaryStage.setTitle("Chat");
        primaryStage.setWidth(800);
        primaryStage.setHeight(450);

        primaryStage.setScene(new Scene(root));
        primaryStage.show();
    }
   
    public void run() {
        launch();
    }

    public void setIn(BufferedReader in) {
        this.in = in;
    }

    public void setOut(PrintWriter out) {
        this.out = out;
    }
}

所以问题是在 start 方法中,输入和输出参数为空,为什么会发生这种情况,我该如何解决。 (我试图在构造函数中传入和传出但它抛出错误)

【问题讨论】:

    标签: sockets javafx


    【解决方案1】:

    变量已声明但未初始化,默认情况下 java 将对象值设置为 null。所以在调用 start 之前,您应该运行 setIn() 和 setOut()。或者你可以制作一个参数化的构造函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-14
      • 2013-05-16
      • 2021-10-17
      • 1970-01-01
      • 1970-01-01
      • 2022-12-01
      • 1970-01-01
      相关资源
      最近更新 更多