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