JTextArea t1=new JTextArea(5,50);
JTextArea t2=new JTextArea(5,50);
JTextArea t3=new JTextArea(15,35);
JTextArea t4=new JTextArea(15,15);
JPopupMenu popup=new JPopupMenu();
JMenuItem copy=new JMenuItem("copy");ActionListener alCopy=new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
在这里对相应的文本框进行相应复制操作
这个文本框该怎么得到?????
}
};copy.addActionListener(alCopy);
popup.add(copy);PopupListener pl=new PopupListener();//弹出菜单监听类
addMouseListener(pl);t1.addMouseListener(pl);
t2.addMouseListener(pl);
t3.addMouseListener(pl);
t4.addMouseListener(pl);
JTextArea t2=new JTextArea(5,50);
JTextArea t3=new JTextArea(15,35);
JTextArea t4=new JTextArea(15,15);
JPopupMenu popup=new JPopupMenu();
JMenuItem copy=new JMenuItem("copy");ActionListener alCopy=new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
在这里对相应的文本框进行相应复制操作
这个文本框该怎么得到?????
}
};copy.addActionListener(alCopy);
popup.add(copy);PopupListener pl=new PopupListener();//弹出菜单监听类
addMouseListener(pl);t1.addMouseListener(pl);
t2.addMouseListener(pl);
t3.addMouseListener(pl);
t4.addMouseListener(pl);
import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
public class ClipBoard
{
public static void main(String[] args)
{
new MyFrame();
}
}
class MyFrame extends JFrame
{
private JPopupMenu popupMenu;
JTextArea t1;
JTextArea t2;
JTextArea t3;
JTextArea t4;
JTextArea ta;
public MyFrame()
{
t1=new JTextArea(5,50);
t2=new JTextArea(5,50);
t3=new JTextArea(15,35);
t4=new JTextArea(15,15);
popupMenu=new JPopupMenu();
JMenuItem menu1=new JMenuItem("copy");
JMenuItem menu2=new JMenuItem("paste");
menu1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
copy(ta);
}
});
menu2.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
paste(ta);
}
});
popupMenu.add(menu1);
popupMenu.add(menu2);
t1.addMouseListener(new MouLis());
t2.addMouseListener(new MouLis());
t3.addMouseListener(new MouLis());
t4.addMouseListener(new MouLis());
Container c=this.getContentPane();
c.setLayout(new FlowLayout());
c.add(t1);
c.add(t2);
c.add(t3);
c.add(t4);
this.setSize(600,500);
this.show();
}
private class MouLis extends MouseAdapter
{
public void mouseReleased(MouseEvent e)
{
if(e.getSource().equals(t1))
ta=t1;
else if(e.getSource().equals(t2))
ta=t2;
else if(e.getSource().equals(t3))
ta=t3;
else if(e.getSource().equals(t4))
ta=t4;
if(e.isPopupTrigger())
{
popupMenu.show(e.getComponent(),e.getX(),e.getY());
}
}
}
private void copy(JTextArea textArea)
{
Clipboard clipboard= Toolkit.getDefaultToolkit().getSystemClipboard();
String text = textArea.getSelectedText();
if (text == null)
text = textArea.getText();
StringSelection selection = new StringSelection(text);
clipboard.setContents(selection, null);
}
private void paste(JTextArea textArea)
{
Clipboard clipboard= Toolkit.getDefaultToolkit().getSystemClipboard();
Transferable contents = clipboard.getContents(this);
if (contents == null) return;
DataFlavor flavor = DataFlavor.stringFlavor;
if (contents.isDataFlavorSupported(flavor))
{
try
{
String text = (String)(contents.getTransferData(flavor));
textArea.replaceSelection(text);
}
catch(UnsupportedFlavorException exception)
{
JOptionPane.showMessageDialog(this, exception);
}
catch(IOException exception)
{
JOptionPane.showMessageDialog(this, exception);
}
}
}
}