JTextPane 如何读取和写入图文混排的内容(类似QQ聊天窗口) 用两个JTextPane做的一个类似QQ的聊天窗口,点击发送按钮后读取位于下方的JTextPane的内容(包括图片和文字)然后把内容写到上方的JtextPane中,如果只有文字的话可以使用getText()和setText()方法,但是现在是图文混合的,该怎么读取和写入呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 楼上两位是说用下面这种方法吗?(假设消息输入为inputMessage,历史消息为historyMessage)StyledDocument doc=inputMessage.getStyledDocument();historyMessage.setStyledDocument(doc);可是这样用的话,两个JtextPane就共用的同一个 StyledDocument了,只要你在inputMessage中输入内容,historyMessage中也会立即出现相同的内容,可是我需要的是点击发送按钮后把inputMessage中的内容(包括图片和文字)追加到historyMessage中,求解!!!!! 不是共享一个StyledDocument实例,而是把一个的内容添加到另一个里。 像我上面说的方法,只要你在下面的JTextPane输入内容,上面的JTextPane的内容也会同步改变,但我要的是先在下面的JTextPane输入内容,点击发送按钮后才把下面的内容追加到上面的JTextPane中请问到底要如何才能实现我要的效果呢??????? 自己写了一个方法,其中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(); } eclipse的断点问题 java MPI java定时器问题,请帮忙看看,谢谢了 Jtable 的自动排序,但是排序后cell里面的值消失怎么办?在线等。。。。 请问哪位大虾帮做几个JAVA考试题啊! 求助:关于在jtree中得到结点的名称 java中如何判断某个应用程序是否正在运行? java应用程序怎么关闭打开的网页哦 谁知道这是怎么回事情?Random类产生的随机数太怪了 swing界面的问题 Java好在哪? 【急!!! 大侠们帮帮忙】用jdbc 连接Oracle为什么总是报”监听打开“
StyledDocument doc=inputMessage.getStyledDocument();
historyMessage.setStyledDocument(doc);
可是这样用的话,两个JtextPane就共用的同一个 StyledDocument了,只要你在inputMessage中输入内容,historyMessage中也会立即出现相同的内容,可是我需要的是点击发送按钮后把inputMessage中的内容(包括图片和文字)追加到historyMessage中,求解!!!!!
请问到底要如何才能实现我要的效果呢???????
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(); }