如何从另一个客户端或服务器将文本添加到列表中?

波诺

我正在尝试编写自己的聊天程序,但无法将文本从一个客户端发送到下一个客户端。我将聊天列为清单,但无法添加。如果您知道如何解决它或有可行的想法,我很想听听。

public class SendAction implements ActionListener {

    private JButton sendButton;
    private JButton sendButtonServer;
    private JTextField text;
    private JLabel label;
    static ArrayList<String> textList = new ArrayList<String>();
    static ArrayList<String> textListServer = new ArrayList<String>();
    private String chatText;

    public SendAction(JButton sendButton) {
        this.sendButton = sendButton;
        this.sendButtonServer = sendButtonServer;
    }

    public SendAction(JTextField text) {
        this.text = text;
    }

    public SendAction(JLabel label) {
        this.label = label;
    }

    public void actionPerformed(ActionEvent e) {
        String action = e.getActionCommand();

        if (e.getSource() == P2PChatClient.sendButton) {
            if (P2PChatClient.text.getText().equals("")) {
            } else {
                textList.add("Client: " + P2PChatClient.text.getText());
                System.out.println("Eingegebene ArrayList Elements: "
                        + textList);
                chatText = String.join("  |  ", textList);
                P2PChatClient.label.setText(chatText);

                P2PChatClient.text.setText(null);
            }
        }

        if (e.getSource() == P2PChatServer.sendButtonServer) {
            if (P2PChatServer.textServer.getText().equals("")) {
            } else {
                textListServer.add("Server: "
                        + P2PChatServer.textServer.getText());
                System.out.println("Eingegebene ArrayList Elements: "
                        + textListServer);
                chatText = String.join("  |  ", textListServer);
                P2PChatServer.labelServer.setText(chatText);

                P2PChatServer.textServer.setText(null);
            }
        }
    }
}

另一类:

public class ChatServerSocket extends Thread {
    private int port;
    private P2PChatServer serverGUI;
    private DataInputStream inStream;
    private DataOutputStream outStream;

    public ChatServerSocket(int port, P2PChatServer serverGUI) {
        this.port = port;
        this.serverGUI = serverGUI;
    }

    public void run() {
        ServerSocket server = null;
        try {
            server = new ServerSocket(port);
        } catch (Exception e) {
            System.out.println("Fehler: " + e.toString());
        }
        Socket client;

        while (true) {
            try {
                client = server.accept();

                InputStream in = client.getInputStream();
                OutputStream out = client.getOutputStream();
                inStream = new DataInputStream(in);
                outStream = new DataOutputStream(out);

                while (true) {
                    String utf = inStream.readUTF();

                    // File file = new File(utf);
                    // if (file.isFile()) {
                    // file.delete();
                    // }

                    SendAction.textListServer.add(utf);

                    // serverGUI.setMessage(utf);
                }
            } catch (IOException ioe) {
                System.out.println("Server Fehler: " + ioe.toString());
            }
        }
    }

    public void sendText(String message) {
        // P2PChatServer.send();
        try {
            if (message != null) {
                outStream.writeUTF(message);
            }
        } catch (IOException ioe) {
            System.out.println("Fehler beim senden im Server: "
                    + ioe.toString());
        } catch (NullPointerException npe) {
            System.out.println("Fehler beim senden im Client: "
                    + npe.toString());
        }
    }
}

另一个:

public class ChatClientSocket extends Thread {
    private String ip;
    private int port;
    private P2PChatClient client;
    private DataInputStream inStream;
    private DataOutputStream outStream;

    public ChatClientSocket(String ip, int port, P2PChatClient client) {
        this.port = port;
        this.ip = ip;
        this.client = client;
    }

    public void run() {
        try {
            Socket clientSocket = new Socket(ip, port);

            InputStream in = clientSocket.getInputStream();
            OutputStream out = clientSocket.getOutputStream();

            inStream = new DataInputStream(in);
            outStream = new DataOutputStream(out);

            while (true) {
                String utf = inStream.readUTF();

                SendAction.textList.add(utf);

                // client.setMessage(utf);
            }
        } catch (UnknownHostException uhe) {
            System.out.println("Client Fehler: " + uhe.toString());
        } catch (IOException ioe) {
            System.out.println("Client Fehler: " + ioe.toString());
        }
    }

    public void sendText(String message) {
        try {
            if (message != null) {
                outStream.writeUTF(message);
            }
        } catch (IOException ioe) {
            System.out.println("Fehler beim senden im Client: "
                    + ioe.toString());
        } catch (NullPointerException npe) {
            System.out.println("Fehler beim senden im Client: "
                    + npe.toString());
        }
    }
}
波诺

我使用了文本区域。使用setEditable时,您无法编辑它,而scrollArea使其可滚动,您知道。

textArea.setEditable(false);
        scrollArea = new JScrollPane(textArea);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从另一个客户端或服务器向列表中添加文本?

来自分类Dev

如何将列表中的列表添加到另一个列表

来自分类Dev

如何将一个列表添加到另一个列表

来自分类Dev

将OpenVPN服务器连接到另一个VPN且OpenVPN服务器具有Internet时,OpenVPN客户端Internet丢失

来自分类Dev

如何使用PHP的客户端库让服务器将事件添加到Google日历?

来自分类Dev

将临时列表添加到另一个列表中,丢失列表数据

来自分类Dev

Mesh Hamachi网络-Hamachi之外的访问服务器,但可由另一个客户端访问

来自分类Dev

根据R中的另一个列表将元素添加到列表

来自分类Dev

将列表添加到 C# 中的另一个列表

来自分类Dev

python 3如何将项目添加到另一个列表中的列表

来自分类Dev

如何创建对另一个mysql服务器容器执行mysql脚本的mysql客户端docker容器?

来自分类Dev

如何使用节俭实现客户端/服务器对象与另一个相同类型的对象之间的通信

来自分类Dev

将另一个类中的元素添加到数组列表中

来自分类Dev

如何从jdk 8中的另一个列表添加到列表

来自分类Dev

Java RMI-将对服务器上另一个远程对象的引用从服务器上的远程方法返回给客户端

来自分类Dev

当Flutter上的RaisedButton的文本更改时,如何将一个列表中的项目从一个类添加到另一个列表中

来自分类Dev

将集合列表中的项目添加到另一个集合

来自分类Dev

Kotlin Android将另一个活动添加到列表中

来自分类Dev

如何将另一个Ubuntu版本添加到Launchpad错误的“影响”列表中?

来自分类Dev

如何将项目添加到 vb.net 中的另一个列表框

来自分类Dev

如何将表列数据添加到mysql中另一个类似的列表

来自分类Dev

在流星中如何将第一个部分数据返回给客户端后如何保持服务器端计算

来自分类Dev

将另一个字段从字段添加到验证器中

来自分类Dev

从服务器端(从另一个容器)和客户端(浏览器)使用相同的URL引用Docker容器

来自分类Dev

如何从另一个类的列表中将项目添加到ListView中

来自分类Dev

如何删除元素列表中的类并添加到另一个元素Jquery?

来自分类Dev

如何将一个列表框中的项目添加到另一个列表框中?

来自分类Dev

R:如何将一个列表中的向量并行添加到另一个列表中(带有可重现的示例)

来自分类Dev

如何将表中的值添加到另一个表中?

Related 相关文章

  1. 1

    如何从另一个客户端或服务器向列表中添加文本?

  2. 2

    如何将列表中的列表添加到另一个列表

  3. 3

    如何将一个列表添加到另一个列表

  4. 4

    将OpenVPN服务器连接到另一个VPN且OpenVPN服务器具有Internet时,OpenVPN客户端Internet丢失

  5. 5

    如何使用PHP的客户端库让服务器将事件添加到Google日历?

  6. 6

    将临时列表添加到另一个列表中,丢失列表数据

  7. 7

    Mesh Hamachi网络-Hamachi之外的访问服务器,但可由另一个客户端访问

  8. 8

    根据R中的另一个列表将元素添加到列表

  9. 9

    将列表添加到 C# 中的另一个列表

  10. 10

    python 3如何将项目添加到另一个列表中的列表

  11. 11

    如何创建对另一个mysql服务器容器执行mysql脚本的mysql客户端docker容器?

  12. 12

    如何使用节俭实现客户端/服务器对象与另一个相同类型的对象之间的通信

  13. 13

    将另一个类中的元素添加到数组列表中

  14. 14

    如何从jdk 8中的另一个列表添加到列表

  15. 15

    Java RMI-将对服务器上另一个远程对象的引用从服务器上的远程方法返回给客户端

  16. 16

    当Flutter上的RaisedButton的文本更改时,如何将一个列表中的项目从一个类添加到另一个列表中

  17. 17

    将集合列表中的项目添加到另一个集合

  18. 18

    Kotlin Android将另一个活动添加到列表中

  19. 19

    如何将另一个Ubuntu版本添加到Launchpad错误的“影响”列表中?

  20. 20

    如何将项目添加到 vb.net 中的另一个列表框

  21. 21

    如何将表列数据添加到mysql中另一个类似的列表

  22. 22

    在流星中如何将第一个部分数据返回给客户端后如何保持服务器端计算

  23. 23

    将另一个字段从字段添加到验证器中

  24. 24

    从服务器端(从另一个容器)和客户端(浏览器)使用相同的URL引用Docker容器

  25. 25

    如何从另一个类的列表中将项目添加到ListView中

  26. 26

    如何删除元素列表中的类并添加到另一个元素Jquery?

  27. 27

    如何将一个列表框中的项目添加到另一个列表框中?

  28. 28

    R:如何将一个列表中的向量并行添加到另一个列表中(带有可重现的示例)

  29. 29

    如何将表中的值添加到另一个表中?

热门标签

归档