`
张小芳
  • 浏览: 34339 次
  • 性别: Icon_minigender_2
  • 来自: 长沙
社区版块
存档分类
最新评论

我的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()处插入字符串内容,属性为null
			doc.insertString(doc.getLength(), msg, null);
		} catch (BadLocationException e) {
			e.printStackTrace();
		}
		t1.setCaretPosition(doc.getLength());//用来接到后面的位置
	}	

      注:插入的代码后面有这么一行:<SPAN style="FONT-SIZE: x-small">  </SPAN> ,该行是多余的,编辑的时候是没有的,由于技术不精,消不 掉,请见谅!

       JTextPane  组件设大小  :用setPreferredSize(new Dimension(int width,int heigth));

                                      Dimension是尺寸对象

                                      setSize 和setBounds不行,用了没有任何反应,不知道为什么。


接下来就是我们的工作就是,对含表情的语句进行解析,已经有了思路。希望不是我们想象的那么简单,冒出有些问题来。

分享到:
评论
1 楼 pywepe 2012-02-20  
  我做过
并不是那么简单

应该要实现以下功能:
1,对输入的字符串进行样式替换
   如输入/hanx 显示成
     输入http://a.com/   显示成链接样式  http://a.com/

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

3,支持粘贴,剪切操作

相关推荐

Global site tag (gtag.js) - Google Analytics