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;
}
}