📄 clipboarddemo2.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 + -