读书人

小弟我的QQ对JTextPane组件的使用

发布时间: 2012-10-25 10:58:57 作者: rapoo

我的QQ对JTextPane组件的使用

?

最近,一直在忙QQ中写信息的编辑框和显示信息的文本框组件的问题,很是纠结。

写信息的编辑框和显示信息的文本框用的是同一种组件,只不过一个能够编辑,一个不能编辑的问题,这里就不多说了。

对写信息的编辑框和显示信息的文本框的要求:

1.显示文本信息;

2.能够自动换行;

3.能够显示表情和图片;

4.编辑的时候,图片和表情能够像文字一样按backspace键就被删掉;


开始的时候,用过JTextArea,但是,JTextArea是编辑文本的,后来,将JTextArea重写,用画的方法加载图片,

但是,要计算坐标,处理换行的问题,坐标计算没有多大问题,但是按backspace键,能够像文字被删掉吗?我下你想过,应该能够吧,给backspace键加个监听器,按键时清除该图片。没试过,这仅仅是些想法,而且我从来没有试过给键盘电脑某个按键加监听器,这个方法想想也蛮麻烦的,也困难!


但对于JTextPane,加载图片就方便实惠!它把图片是作为一个Icon对象放上去的,按backspace键

时,就能够像删除一个文字一样被删除掉。而且不用做上述那些复杂的处理。


JTextPane 写文字:

?

?

StyledDocument doc;doc = t1.getStyledDocument();//获编辑模型t1.setCaretPosition(doc.getLength());//设置 TextComponent 的文本插入符的位置。try {//doc.getLength()处插入字符串内容,属性为nulldoc.insertString(doc.getLength(), msg, null);} catch (BadLocationException e) {e.printStackTrace();}t1.setCaretPosition(doc.getLength());//用来接到后面的位置}

????? 注:插入的代码后面有这么一行:<SPAN?style=
输入http://a.com/ 显示成链接样式 http://a.com/

2,退格后要还成字符串
对于/hanx对应的 退一格后应该变成/han 而不是/hanx都删除了

3,支持粘贴,剪切操作

读书人网 >编程

热点推荐