Java: 从系统的剪贴板取得复制的字符串

Java: 从系统的剪贴板取得复制的字符串
     public  Test() {
        button 
=   new  JButton( " Past " );
        button.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
        
this .add(button);

        button.addActionListener(
new  ActionListener() {
            
public   void  actionPerformed(ActionEvent e) {
                
//  取得系统剪贴板里可传输的数据构造的Java对象
                Transferable t  =  Toolkit.getDefaultToolkit()
                        .getSystemClipboard().getContents(
null );

                
try  {
                    
if  (t  !=   null
                            
&&  t.isDataFlavorSupported(DataFlavor.stringFlavor)) {
                        
//  因为原系的剪贴板里有多种信息, 如文字, 图片, 文件等
                        
//  先判断开始取得的可传输的数据是不是文字, 如果是, 取得这些文字
                        
                        String s 
=  (String) t
                                .getTransferData(DataFlavor.stringFlavor);
                        
//  同样, 因为Transferable中的DataFlavor是多种类型的,
                        
//  所以传入DataFlavor这个参数, 指定要取得哪种类型的Data.
                        System.out.println(s);
                    }
                } 
catch  (UnsupportedFlavorException ex) {
                    ex.printStackTrace();
                } 
catch  (IOException ex) {
                    ex.printStackTrace();
                }
            }
        });
    }


关键信息:
getSystemClipboard().getContents(null);
Transferable, DataFlavor, DataFlavor.stringFlavor
getTransferData
isDataFlavorSupported
getTransferData

你可能感兴趣的:(Java: 从系统的剪贴板取得复制的字符串)