请问怎样才能用JTextPane做能发送聊天表情的聊天程序,现在只做一个放置表情按钮的框!
可是我不知道怎样设置那个按钮里面的动作还会把表情设置在聊天框里,还有如果设置了在聊天框,那又该怎样把
表情转换为特殊字符发过去,让对方的程序也能识别然后转换为图片呢,大体上是明白的,可是在实际去做的时候,还是
有些困难!
请高手大侠帮忙
例(现在能做到的,用框放置按钮,把按钮设置成能让图片显示): JButton btn1 = new JButton("");
btn1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
}
});
btn1.setToolTipText("流汗");
btn1.setIcon(new ImageIcon(getClass().getResource("/image/[11].gif")));
btn1.setBounds(0, 0, 60, 60);
frame.getContentPane().add(btn1);

解决方案 »

  1.   

    表情,一般来说发送时并不是直接发送图片,而是发送代码,比如:{$11} 这个可能就代表了某个编号为11的表情,或者:{$smile}。当然具体编码形式或代码可以自行设计,目标程序获取到信息串后,首先要做的事情,就是把该短代码改为插入特定的表情图片,这样保证总体信息发送量较低。
    那么如果是真的要发送图片的话,一般来说会分为两次发送(有时会分不同通道发送):
    1、发送信息正文,比如:天气真好,{$tmp123123123123},哈哈。
    2、发送各种附件,注意标识要跟之前的ID能对应上,一般用UUID或其简化。
    程序处理时,同样先识别出{$tmpUUID}这种串,然后替换为自定义控件,并监听附件接收队列,如果完整收下了附件,就显示内容,如果超时了或者失败了就显示一个“图裂了”之类的。
    原理大致就是上述原理,然后就是比拼细节处理等问题了。
      

  2.   

    原来如此,谢谢高手大侠,那请问怎样能设置聊天输入框JTextPane一收到这些特殊的字符之后,立即就转换为图片来处理呢,也就是说,我是不是应该设置两个JTextPane的框一直做一接受到特殊字符之后就立即转换为图片呢
    另外,为什么我把表情按钮设置在另外一个class里面的时候,我设置按了按钮就会在外面的聊天程序显示出图片来,为什么聊天输入框什么都没有显示呢
    if(e.getSource()==btn1){
    textPane_1.insertIcon(new ImageIcon(getClass().getResource("e:\\E:\\Java\\TEXT\\image\\[11].gif")));
            
           textPane_1.setCaretPosition(doc.getLength());
    }