⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 imagetransfertest.java

📁 corejava编程源码2
💻 JAVA
字号:
/**
 * @version 1.10 1999-09-16
 * @author Cay Horstmann
 */

import java.io.*;
import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.*;
import javax.swing.*;

public class ImageTransferTest
{  public static void main(String[] args)
   {  JFrame frame1 = new ImageTransferFrame();
      JFrame frame2 = new ImageTransferFrame();
      frame1.setTitle("Frame 1");
      frame2.setTitle("Frame 2");
      frame1.show();
      frame2.show();
   }
}

class ImageTransferFrame extends JFrame
   implements ActionListener
{  public ImageTransferFrame()
   {  setSize(300, 300);
      addWindowListener(new WindowAdapter()
         {  public void windowClosing(WindowEvent e)
            {  System.exit(0);
            }
         } );

      Container contentPane = getContentPane();
      label = new JLabel();
      contentPane.add(label, "Center");

      JMenu fileMenu = new JMenu("File");
      openItem = new JMenuItem("Open");
      openItem.addActionListener(this);
      fileMenu.add(openItem);

      exitItem = new JMenuItem("Exit");
      exitItem.addActionListener(this);
      fileMenu.add(exitItem);

      JMenu editMenu = new JMenu("Edit");
      copyItem = new JMenuItem("Copy");
      copyItem.addActionListener(this);
      editMenu.add(copyItem);

      pasteItem = new JMenuItem("Paste");
      pasteItem.addActionListener(this);
      editMenu.add(pasteItem);

      JMenuBar menuBar = new JMenuBar();
      menuBar.add(fileMenu);
      menuBar.add(editMenu);
      setJMenuBar(menuBar);
   }

   public void actionPerformed(ActionEvent evt)
   {  Object source = evt.getSource();
      if (source == openItem)
      {  JFileChooser chooser = new JFileChooser();
         chooser.setCurrentDirectory(new File("."));

         chooser.setFileFilter(new
            javax.swing.filechooser.FileFilter()
            {  public boolean accept(File f)
               {  String name = f.getName().toLowerCase();
                  return name.endsWith(".gif")
                     || name.endsWith(".jpg")
                     || name.endsWith(".jpeg")
                     || f.isDirectory();
               }
               public String getDescription()
               {  return "Image files";
               }
            });

         int r = chooser.showOpenDialog(this);
         if(r == JFileChooser.APPROVE_OPTION)
         {  String name
               = chooser.getSelectedFile().getAbsolutePath();
            setImage(Toolkit.getDefaultToolkit().getImage(name));
         }
      }
      else if (source == exitItem) System.exit(0);
      else if (source == copyItem) copy();
      else if (source == pasteItem) paste();
   }

   private void copy()
   {  ImageSelection selection = new ImageSelection(theImage);
      localClipboard.setContents(selection, null);
   }

   private void paste()
   {  Transferable contents
         = localClipboard.getContents(this);
      if (contents == null) return;
      try
      {  Image image = (Image)contents.getTransferData
            (ImageSelection.imageFlavor);
         setImage(image);
      }
      catch(Exception e) {}
   }

   public void setImage(Image image)
   {  theImage = image;
      label.setIcon(new ImageIcon(image));
   }

   private static Clipboard localClipboard
      = new Clipboard("local");
   private Image theImage;
   private JLabel label;
   private JMenuItem openItem;
   private JMenuItem exitItem;
   private JMenuItem copyItem;
   private JMenuItem pasteItem;
}

class ImageSelection implements Transferable
{  public ImageSelection(Image image)
   {  theImage = image;
   }

   public DataFlavor[] getTransferDataFlavors()
   {  return flavors;
   }

   public boolean isDataFlavorSupported(DataFlavor flavor)
   {  return flavor.equals(imageFlavor);
   }

   public synchronized Object getTransferData
      (DataFlavor flavor)
      throws UnsupportedFlavorException
   {  if(flavor.equals(imageFlavor))
      {  return theImage;
      }
      else
      {  throw new UnsupportedFlavorException(flavor);
      }
   }

   public static final DataFlavor imageFlavor
      = new DataFlavor(java.awt.Image.class, "AWT Image");

   private static DataFlavor[] flavors = { imageFlavor };
   private Image theImage;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -