最近,一直在忙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不行,用了没有任何反应,不知道为什么。
接下来就是我们的工作就是,对含表情的语句进行解析,已经有了思路。希望不是我们想象的那么简单,冒出有些问题来。
分享到:
相关推荐
JTextPane使用,可以传图片,文字等
JAVA-----JTextPane实例 代码
SWT JTextPane 可以把控件中需要的字符串的颜色修改成自己想要的颜色
演示、说明程序 博文链接:https://bps.iteye.com/blog/136627
NULL 博文链接:https://icarusliu.iteye.com/blog/1412007
本源码实现了 文本区里加图片和插入艺术字的功能 窗口使用Windows窗体风格
NULL 博文链接:https://icarusliu.iteye.com/blog/2098986
Swing组件(javax.swing.-) 面板:JPanel 标签化窗格:JTabbedPane 拆分窗格:JSplitPane 滚动窗格:JScrollPane 工具栏:JToolBar 桌面窗格:JDesktopPane 内部框架:JInternalFrame 分层窗格:JLayeredPane ...
java写的文本组件,带行号,做的比较简单,还有些小问题
可以发送Emoji表情的聊天室,另外在文件夹中放置了自己的关键代码部分解析,关于emoji部分可查看笔者博客https://blog.csdn.net/qq_38853759/article/details/88657230?spm=1001.2014.3001.5501
学生提问:Java为什么要对这些数据进行缓存呢? 67 3.7.6 逻辑运算符 67 3.7.7 三目运算符 68 3.7.8 运算符的结合性和优先级 69 3.8 本章小结 70 本章练习 70 第4章 流程控制和数组 71 4.1 顺序结构 72 4.2 ...
我还使用了一些其他的Java类和方法,例如JFileChooser、JTextPane、JMenuBar等等。 我希望这个简单的记事本可以帮助其他学习Java编程的人,特别是那些想要学习GUI编程的人。如果您有任何建议或需要帮助,请随时与我...
JTextPane为基础做的支持图文操作的记事本。 实现了很多网上源代码中未能实现的难点。比如图文保存拷贝 插入文件 组件遍历等等。有一定的使用价值,有很大的学习价值。 参考了网上一份用JTextArea做的记事本的源代码...
java写的文本组件,带行号,做的比较简单
NULL 博文链接:https://gh0769.iteye.com/blog/598839