请问如何在一个JTextPane组件中使用paste方法把剪贴板上的图片粘贴上去呢?而不用insertIcon()方法插入一个图片。
我希望能在一个JTextPane组件中粘贴图片或者公式。
我希望能在一个JTextPane组件中粘贴图片或者公式。
解决方案 »
- math.random产生不重复的数字?
- =====请问如何做远程控制?======
- 求java实现的BBS源代码,有上传附件功能,支持DB2或SQL Server!!
- Timer 问题 在线=
- 小菜一碟,来和大家讨论一下最佳算法,来者有分,答者重分,言出必行!2005.1.18日之前结帐~分数不够可再加!
- 菜鸟的问题,运行环境JSWDK到哪下载?
- 还是昨天的url传递中文问题,又出现新的问题
- 请教?
- who can give me a username and userID for Jbuilder 5 ? thanx
- Map集合的value值不能重复??
- JAVA怎么从头开始...........................
- 什么是系统分析?
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.io.IOException;import javax.swing.*;public class ImagePasteTest
{
public static void main(String[] args)
{
JTextPane tp = new JTextPane() {
public void paste()
{
if (isEditable() && isEnabled()) {
Clipboard cb = Toolkit.getDefaultToolkit().getSystemClipboard();
Transferable contents = cb.getContents(null);
if (contents != null && contents.isDataFlavorSupported(DataFlavor.stringFlavor)) {
super.paste();
}
else if (contents != null && contents.isDataFlavorSupported(DataFlavor.imageFlavor)) {
try {
Image img = (Image) contents.getTransferData(DataFlavor.imageFlavor);
Icon icon = new ImageIcon(img);
insertIcon(icon);
} catch (UnsupportedFlavorException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
};
JFrame f = new JFrame("Ctrl+V to paste (String or Image)");
f.getContentPane().add(new JScrollPane(tp), BorderLayout.CENTER);
f.setSize(500, 500);
f.setLocationRelativeTo(null);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
}
主要就是用剪贴板上的图象生成一个icon实例,然后用insertIcon方法。
牛,再收一个。
一会儿功夫看你两个程序了,很熟啊。