当前位置:  技术问答>java相关

问:在Applet中,绘制出的图形如何让用户能够把它复制到Word中!

    来源: 互联网  发布时间:2015-07-26

    本文导语:  需要考虑到,在IE中JDK版本是1.1.4,尽量不需要升级到1.2,1.3等版本,在用户使用时,请可能的简单。曾考虑把数据放到系统的clipboard中,这里涉及到一大堆问题,望高手点拨一下!! | 转载: ...

需要考虑到,在IE中JDK版本是1.1.4,尽量不需要升级到1.2,1.3等版本,在用户使用时,请可能的简单。曾考虑把数据放到系统的clipboard中,这里涉及到一大堆问题,望高手点拨一下!!

|
转载:

如何在Java应用程序中实现copy图像功能。    turbochen(原作)  
  
swing,clipboard,datatransfer 
  


用Java开发图形应用程序的朋友一定遇到过如何在程序中实现复制图像的功能。在jdk1.4以前,java本身就支持将程序中文字串复制给其它的非java应用程序使用,而将程序中的图像复制到非java应用程序简直难上加难。只到jdk1.4出来,这个问题才得以解决。



一般我们开发java application界面,主要用swing图形包。几乎所有的swing控件都是由JComponent继承而来的。如果我们要取得JComponent的图像,可以用以下方式:



 Rectangle rect = comp.getBounds();
 BufferedImage bufImage = new BufferedImage(rect.width,
           rect.height,
           BufferedImage.TYPE_INT_RGB);
 Graphics g = bufImage.getGraphics();
 g.translate(-rect.x, -rect.y);
 comp.paint(g);
这样的话,图像就保存到BufferedImage对象当中了。



现在来看如何将这个BufferedImage复制到系统clipboard中。要做复制功能,一般是继承TransferHandler类,实现Transferable接口, 这样你的复制内容才能传到系统clipboard,为此我们来写一个ImageSelection类:



/**

Copyright: Copyright (c) 2002


 * @author Turbo Chen
 * @version 1.00
 */
import java.awt.*;
import java.awt.image.*;
import java.awt.datatransfer.*;
import javax.swing.*;



public class ImageSelection extends TransferHandler
       implements Transferable
{



  private static final DataFlavor flavors[] =
     {DataFlavor.imageFlavor};



  private Image image;



  public int getSourceActions(JComponent c) {
    return TransferHandler.COPY;
  }



  public boolean canImport(JComponent comp, DataFlavor
    flavor[]) {
    for (int i=0, n=flavor.length; i

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.applet类applet的类成员方法: applet定义及介绍
  • 如何让Applet里的控件随着Applet大小改变而一直占满整个Applet呢?
  • java命名空间java.applet类applet.accessibleapplet的类成员方法: applet.accessibleapplet定义及介绍
  • 对applet坐数字签名后,如果重新用jar对applet打包,需要重新做applet数字签名吗?
  • java命名空间java.applet类applet的类成员方法: getappletcontext定义及介绍
  • 为什么我的applet编译完,之后除了applet1.class之外,还有一个applet$1.class?
  • java命名空间java.applet类applet的类成员方法: getappletinfo定义及介绍
  • 急,我想问一下调用一个对话框的命令语句,比方说我已建立了一个Applet2,接下来该如何在Applet1中点击一个按钮来打开这个Applet2.谢谢
  • java命名空间java.applet类applet的类成员方法: isactive定义及介绍
  • 如何让IE认识applet所带的数字签名,而不是让证书仓库认识这个带数字签名的applet,就是说不装jdk也可以在IE里面使用带有签名的applet,详情请进
  • java命名空间java.applet类applet的类成员方法: stop定义及介绍
  • 请问application (or applet)如何实现对applet 小程序的调用??
  • java.applet类applet的类成员方法: getcodebase定义及介绍
  • 请问能在浏览器调入APPLET后,在APPLET内部改变其自身的大小嘛?
  • java命名空间java.applet类applet的类成员方法: init定义及介绍
  • applet 如何启动新的 applet
  • java命名空间java.applet类applet的类成员方法: destroy定义及介绍
  • 如何把applet窗口里的Java Applet Window去掉?
  • java命名空间java.applet类applet的类成员方法: getparameterinfo定义及介绍
  • Applet对本地资源是不能访问的,那如果我要用Applet做打印设计,那如何是好呢??
  • java命名空间java.applet类applet的类成员方法: getdocumentbase定义及介绍
  • Applet问题,applet在tomcat+apache环境下是否支持FileDialog类,急,急 !!!!快来抢分呀!!!!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3