社区
Java SE
帖子详情
JTextPane 如何读取和写入图文混排的内容(类似QQ聊天窗口)
jiangtianyin
2010-09-07 07:46:49
用两个JTextPane做的一个
类似QQ的聊天窗口
,点击发送按钮后读取位于下方的JTextPane的内容(包括图片和文字)然后把内容写到上方的JtextPane中,如果只有文字的话可以使用getText()和setText()方法,但是现在是图文混合的,该怎么读取和写入呢?
...全文
514
6
打赏
收藏
JTextPane 如何读取和写入图文混排的内容(类似QQ聊天窗口)
用两个JTextPane做的一个类似QQ的聊天窗口,点击发送按钮后读取位于下方的JTextPane的内容(包括图片和文字)然后把内容写到上方的JtextPane中,如果只有文字的话可以使用getText()和setText()方法,但是现在是图文混合的,该怎么读取和写入呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jiangtianyinb
2010-09-17
打赏
举报
回复
自己写了一个方法,其中Editor继承自JTextPane,经测试完全可以实现两个JTextPane之间内容的传递
public void copyContent(Editor from, Editor to) {
Vector<String> picVector = new Vector<String>();
int loc = to.getEditorDocument().getLength();
// System.out.println(loc);
for (int i = 0; i < from.getStyledDocument().getRootElements()[0]
.getElement(0).getElementCount(); i++) {
Icon icon = StyleConstants.getIcon(from.getStyledDocument()
.getRootElements()[0].getElement(0).getElement(i)
.getAttributes());
if (icon != null) {
picVector.add(icon.toString());
}
}
int k = 0;
for (int i = 0; i < from.getText().length(); i++) {
if (from.getStyledDocument().getCharacterElement(i).getName()
.equals("icon")) {
to.insertIcon(new ImageIcon(picVector.get(k).toString()));
picVector.get(k++);
} else {
try {
to.getStyledDocument().insertString(to.getText().length(),
from.getStyledDocument().getText(i, 1), null);
} catch (BadLocationException ble) {
ble.printStackTrace();
}
}
}
picVector.clear();
}
jiangtianyin
2010-09-09
打赏
举报
回复
楼上两位是说用下面这种方法吗?(假设消息输入为inputMessage,历史消息为historyMessage)
StyledDocument doc=inputMessage.getStyledDocument();
historyMessage.setStyledDocument(doc);
可是这样用的话,两个JtextPane就共用的同一个 StyledDocument了,只要你在inputMessage中输入内容,historyMessage中也会立即出现相同的内容,可是我需要的是点击发送按钮后把inputMessage中的内容(包括图片和文字)追加到historyMessage中,求解!!!!!
jiangtianyin
2010-09-09
打赏
举报
回复
[Quote=引用 4 楼 huntor 的回复:]
不是共享一个StyledDocument实例,而是把一个的内容添加到另一个里。
[/Quote]
像我上面说的方法,只要你在下面的JTextPane输入内容,上面的JTextPane的内容也会同步改变,但我要的是先在下面的JTextPane输入内容,点击发送按钮后才把下面的内容追加到上面的JTextPane中
请问到底要如何才能实现我要的效果呢???????
huntor
2010-09-09
打赏
举报
回复
不是共享一个StyledDocument实例,而是把一个的内容添加到另一个里。
泓博
2010-09-07
打赏
举报
回复
[Quote=引用 1 楼 huntor 的回复:]
通过 StyledDocument操作。
[/Quote]
同意!
huntor
2010-09-07
打赏
举报
回复
通过 StyledDocument操作。
锅炉系统完整工程设计方案(深度详细版).docx
锅炉系统完整工程设计方案(深度详细版).docx
光流模块使用手册(LC-307)V1.3@20230223,湖南优象科技有限公司资料分享
资料来源:湖南优象科技有限公司资料链接下载。里面包含了:湖南优象科技有限公司光流飞控端的使用源码(参考代码)demo,湖南优象科技有限公司上位机光流软件,配置文件,LC307需初始化设置的光流模块配置选项说明图,飞控端调试光流方法说明V1.0@20240329,光流模块使用手册(LC-307)V1.3@20230223,无人机光流模块使用技巧。原来的下载链接通过百度网盘分享的文件:光流模块使用手册… 链接:https://pan.baidu.com/s/1ktmurBJHyzPNgBS298_wyw?pwd=sdgl 家人们谁懂哇,csdn和优象官网,只找到了使用手册,配置文件一点都不带有的哇,去找淘宝客服直接说没有。去找优象科技有限公司的邮箱才给我发哇。。。。。。。
V90伺服系统操作说明-下载即用.zip
下载代码方式:https://pan.quark.cn/s/a4b39357ea24 SHEMaskDemo App遮罩引导操作提示 使用说明类的操作引导提示,点击x或“我知道了”或“下一步”直到结束。 Image
text
机电一体化系统综合课程设计_X-Y数控工作台设计说明书——22.rar
机电一体化系统综合课程设计_X-Y数控工作台设计说明书——22.rar
无尽冬日AAAAAAAAAAB
无尽冬日AAAAAAAAAAB
Java SE
62,622
社区成员
307,257
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章