JAVA SOCKET 输入多行怎么办 急!!!!!

[复制链接]
查看11 | 回复2 | 2009-5-8 03:59:02 | 显示全部楼层 |阅读模式
我在用JAVA写聊天室的时候碰到一个问题,就是我的消息编辑区是JTextArea,可以一次输入多行,而我看了很多网上的聊天室程序代码,基本上都是JTextField,这便带来了一个问题,由于有的时候我需要发送一些控制信息(比如用户列表的增加和移除),如果是每次只发送一行,只要在发送头部加入一点信息(用户名,时间),那可以很简单的控制该行的头部字符,但我如果是发送一段(多行)信息,而每行的头部是用户输入的,我就不能知道用户在每行第一个字符会输入什么字符,如果我定义一行的第一个字符是"#"表示是从列表用户中增加用户,万一用户恰巧在某一行的第一个字符输入了“#”,那便会发生错误。我曾经想过用某些极其偏僻的字符作为行头部字符标志该行是控制信息,但总觉得这样有点很水,这个问题令我十分郁闷,希望高手予以解答

回复

使用道具 举报

千问 | 2009-5-8 03:59:02 | 显示全部楼层
思路:再加一个KeyListener判断按下的是VK_ENTER(回车)——发送数据还是CTRL_MASK+VK_ENTER(Ctrl+回车)——换行另外,TextField只能显示单行文本要显示多行的话两个都应该是TextArea楼主注意咯...
回复

使用道具 举报

千问 | 2009-5-8 03:59:02 | 显示全部楼层
发送的时候在聊天内容的每一行前面都加一个标记就行了,比如"talk:"。 String s=textField.getText();Scanner sc = new Scanner(s);StringBuilder b = new StringBuilder();while(sc.hasNextLine()) {b.append("t...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行