java 粘贴文字和图片_同时复制图片和文字到剪贴板

importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;importjavax.swing.event.*;importjava.awt.dnd.*;importjava.awt.datatransfer.*;importjava.io.*;classClipboardTest2

{

JFrame mainFrame;

JPanel mainPanel;

JButton button;

Clipboard cb;publicClipboardTest2() {

mainFrame=newJFrame (  );

mainPanel=newJPanel ();

button=newJButton ("Button");

button.setIcon(newImageIcon("candle.png") );

cb=Toolkit.getDefaultToolkit().getSystemClipboard();

button.addActionListener(newActionListener(){publicvoidactionPerformed( ActionEvent e){

ButtonTextAndImageTransferable btait=newButtonTextAndImageTransferable(button);

cb.setContents( btait,btait );

}

});

mainPanel.add( button );

mainFrame.getContentPane().add( mainPanel );

mainFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );

mainFrame.pack();

mainFrame.setLocationRelativeTo(null);

mainFrame.setVisible(true);

}publicstaticvoidmain(String[] args)

{

SwingUtilities.invokeLater(newRunnable(){publicvoidrun(){newClipboardTest2();

}

});

}

}classButtonTextAndImageTransferableextendsImageIconimplementsTransferable,ClipboardOwner{

DataFlavor[] flavors;

JButton button;publicvoidlostOwnership(Clipboard clipboard, Transferable contents){

System.out.println("lostownership");

}publicButtonTextAndImageTransferable( JButton button){

flavors=newDataFlavor[2];

flavors[0]=DataFlavor.stringFlavor;

flavors[1]=DataFlavor.p_w_picpathFlavor;this.button=button ;

}publicDataFlavor[] getTransferDataFlavors(){returnflavors;

}publicObject getTransferData(DataFlavor flavor){if( flavor.equals( flavors[0] ) )

{returnbutton.getText();

}else{if( flavor.equals( flavors[1] ) ){

ImageIcon icon=(ImageIcon)button.getIcon();returnicon.getImage();

}

}returnnull;

}publicbooleanisDataFlavorSupported(DataFlavor flavor){if( flavor.equals( flavors[0] )||flavor.equals( flavors[1] ))returntrue;returnfalse;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值