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

📄 clipboarddemo2.java

📁 java 完全探索的随书源码
💻 JAVA
字号:
// ClipboardDemo2.java

import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.*;

import java.io.*;

class ClipboardDemo2 extends Frame
                     implements ActionListener, ItemListener
{
   TextArea ta;
   TextField tf;
   Checkbox cbSystem;

   boolean useSystem = true;

   Clipboard pc = new Clipboard ("Personal");
   Clipboard sc = Toolkit.getDefaultToolkit ().getSystemClipboard ();

   ClipboardDemo2 (String title)
   {
      super (title);

      addWindowListener (new WindowAdapter ()
                         {
                             public void windowClosing (WindowEvent e)
                             {
                                System.exit (0);
                             }
                         });

      MenuBar mb = new MenuBar ();

      Menu file = new Menu ("File");
      MenuItem fileItem = new MenuItem ("Exit");
      fileItem.addActionListener (this);
      file.add (fileItem);

      mb.add (file);

      Menu edit = new Menu ("Edit");
      MenuItem editItem = new MenuItem ("Copy");
      editItem.addActionListener (this);
      edit.add (editItem);
      editItem = new MenuItem ("Paste");
      editItem.addActionListener (this);
      edit.add (editItem);

      mb.add (edit);

      setMenuBar (mb);

      Panel p = new Panel ();
      CheckboxGroup cbg = new CheckboxGroup ();
      cbSystem = new Checkbox ("System", true, cbg);
      cbSystem.addItemListener (this);
      p.add (cbSystem);
      Checkbox cb = new Checkbox ("Private", false, cbg);
      cb.addItemListener (this);
      p.add (cb);

      add (p, BorderLayout.SOUTH);

      p = new Panel ();
      tf = new TextField (60);
      p.add (tf);

      add (p, BorderLayout.CENTER);

      p = new Panel ();
      ta = new TextArea (10, 60);
      ta.setEditable (false);
      p.add (ta);

      add (p, BorderLayout.NORTH);

      pack ();

      setVisible (true);
   }

   public void actionPerformed (ActionEvent e)
   {
      if (e.getActionCommand ().equals ("Exit"))
          System.exit (0);

      Clipboard c = (useSystem) ? sc : pc;

      if (e.getActionCommand ().equals ("Copy"))
      {
          myTransferable mt = new myTransferable (tf.getText ());
          c.setContents (mt, mt);
          return;
      }

      // Paste is the default.

      try
      {
         Transferable t = c.getContents (this);
         if (t != null)
         {
             String s;
             s = (String) t.getTransferData (DataFlavor.stringFlavor);
             ta.setText (s);
         }
      }
      catch (IOException e2) {}
      catch (UnsupportedFlavorException e2) {}

      return;
   }

   public void itemStateChanged (ItemEvent e)
   {
      ta.setText ("");

      if (e.getItemSelectable () == cbSystem)
          useSystem = true;
      else
          useSystem = false;
   }

   public static void main (String [] args)
   {
      new ClipboardDemo2 ("Clipboard Demo2");
   }
}

class myTransferable implements Transferable, ClipboardOwner
{
   private DataFlavor [] dataFlavors =
   {
      DataFlavor.stringFlavor
   };

   private String data;

   myTransferable (String data)
   {
      this.data = data;
   }

   public DataFlavor [] getTransferDataFlavors ()
   {
      // Do not allow caller to modify our flavors.

      return (DataFlavor []) dataFlavors.clone ();
   }

   public boolean isDataFlavorSupported (DataFlavor flavor)
   {
      return (flavor == DataFlavor.stringFlavor) ? true : false;
   }

   public Object getTransferData (DataFlavor flavor)
          throws UnsupportedFlavorException, IOException
   {
      if (flavor == DataFlavor.stringFlavor)
          return (Object) data;
      else
          throw new UnsupportedFlavorException (flavor);
   }

   public void lostOwnership (Clipboard c, Transferable contents)
   {
      System.out.println ("losing ownership");
   }
}

⌨️ 快捷键说明

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