天天看点

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;

}

}