Java的拷贝和粘贴

qq_pride 2003-09-26 05:51:50
请问如何用JAVA实现拷贝和粘贴功能
...全文
148 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
chandler 2003-09-26
  • 打赏
  • 举报
回复
java.awt.datatransfer.Clipboard类
Toolkit.getDefaultToolkit().getSystemClipboard();得到系统见且办后可进行。
这也是java进程间通信的一个好办法
liaomingxue 2003-09-26
  • 打赏
  • 举报
回复
给个演示程序你吧(不过,文本框等组件都支持ctrl-c,ctrl-v等的。这里只是演示)
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.datatransfer.*;
import java.io.IOException;
public class ClipboardDemo
{
public static void main (String args[])
{
final Clipboard clipboard =Toolkit.getDefaultToolkit().getSystemClipboard();
final JFrame f = new JFrame ("Clip It");
Container c = f.getContentPane();
final JTextArea jt = new JTextArea();
JScrollPane pane = new JScrollPane (jt);
final JPopupMenu popmenu=new JPopupMenu("Copy/Paste");

JMenuItem copyMenu=new JMenuItem("Copy");
JMenuItem pasteMenu=new JMenuItem("Paste");
popmenu.add(copyMenu);
popmenu.add(pasteMenu);
copyMenu.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
String selection = jt.getSelectedText();
StringSelection data = new StringSelection(selection);
clipboard.setContents (data, data);
popmenu.setVisible(false);
}
});
pasteMenu.addActionListener(new ActionListener()
{
public void actionPerformed (ActionEvent e)
{
Transferable clipData = clipboard.getContents(clipboard);
if (clipData != null)
{
try
{
String s = (String)(clipData.getTransferData(DataFlavor.stringFlavor));
jt.replaceSelection (s);
}
catch (UnsupportedFlavorException ee){System.err.println ("Unsupported flavor:" + ee); }
catch (IOException ee) {System.err.println ("Unable to get data:" + ee);}
}
popmenu.setVisible(false);
}
});
jt.addMouseListener(new MouseAdapter()
{
public void mouseClicked(MouseEvent e)
{
popmenu.setLocation(f.getX()+e.getX(),f.getY()+e.getY());
popmenu.setVisible(true);
}
});
f.addWindowListener (new WindowAdapter()
{
public void windowClosing (WindowEvent e) { System.exit (0); }
});
c.add (pane, BorderLayout.CENTER);
JButton copy = new JButton ("Copy");
copy.addActionListener (new ActionListener()
{
public void actionPerformed (ActionEvent e) {
String selection = jt.getSelectedText();
StringSelection data = new StringSelection(selection);
clipboard.setContents (data, data);
}
});
JButton paste = new JButton ("Paste");
paste.addActionListener (new ActionListener()
{
public void actionPerformed (ActionEvent e) {
Transferable clipData = clipboard.getContents
(clipboard);
if (clipData != null) {
try {
String s = (String)(clipData.getTransferData
(
DataFlavor.stringFlavor));
jt.replaceSelection (s);
}
catch (UnsupportedFlavorException ee){System.err.println ("Unsupported flavor:" + ee); }
catch (IOException ee) {System.err.println ("Unable to get data:" + ee);}
}
}
});
JPanel p = new JPanel();
p.add (copy);
p.add (paste);
c.add (p, BorderLayout.SOUTH);
f.setSize (300, 300);
f.setVisible (true);
}
}

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧