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);

解决方案 »

  1.   

    我刚才的程序稍微改一下就行了。
    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);
             }
          }
       }
    }
      

  2.   

    为什么,要这么麻烦,写一个机器人,模拟ctrl+c和ctrl+v就可以了
      

  3.   

    对文本框给出相应的事件Listener