同时复制图片和文字到剪贴板
import java.awt.*; 本文出自 51CTO.COM技术博客import javax.swing.*; import java.awt.event.*; import javax.swing.event.*; import java.awt.dnd.*; import java.awt.datatransfer.*; import java.io.*; class ClipboardTest2 { JFrame mainFrame; JPanel mainPanel; JButton button; Clipboard cb; public ClipboardTest2() { mainFrame = new JFrame ( ); mainPanel = new JPanel (); button = new JButton ("Button"); button.setIcon( new ImageIcon("candle.png") ); cb = Toolkit.getDefaultToolkit().getSystemClipboard(); button.addActionListener( new ActionListener(){ public void actionPerformed( ActionEvent e){ ButtonTextAndImageTransferable btait = new ButtonTextAndImageTransferable(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 ); } public static void main(String[] args) { SwingUtilities.invokeLater( new Runnable(){ public void run(){ new ClipboardTest2(); } }); } } class ButtonTextAndImageTransferable extends ImageIcon implements Transferable,ClipboardOwner{ DataFlavor[] flavors; JButton button; public void lostOwnership(Clipboard clipboard, Transferable contents){ System.out.println( "lostownership" ); } public ButtonTextAndImageTransferable( JButton button){ flavors = new DataFlavor[2]; flavors[0] = DataFlavor.stringFlavor; flavors[1] = DataFlavor.imageFlavor; this.button = button ; } public DataFlavor[] getTransferDataFlavors(){ return flavors; } public Object getTransferData(DataFlavor flavor){ if( flavor.equals( flavors[0] ) ) { return button.getText(); }else{ if( flavor.equals( flavors[1] ) ){ ImageIcon icon = (ImageIcon)button.getIcon(); return icon.getImage(); } } return null; } public boolean isDataFlavorSupported(DataFlavor flavor){ if( flavor.equals( flavors[0] ) || flavor.equals( flavors[1] )) return true; return false; } } |


uckf609
博客统计信息
热门文章
最新评论
友情链接