注册 | 登录 忘记密码? 51cto首页 | 博客 | 论坛 | 招聘
热点文章 IT行业入门---兴趣当先
 帮助

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


2007-01-01 12:45:00
import java.awt.*;
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;
    }
}


上一篇 java里的dnd  下一篇 自定义组合框



    文章评论
 
 

发表评论

昵   称:
验证码:  点击图片可刷新验证码  博客过2级,无需填写验证码
内   容: