文本区的复制粘贴及剪切功能

阅读更多

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JTextField;

public class Movedata extends JFrame implements ActionListener {
 private JPanel panel;
 private JLabel namelabel;
 private JTextField nametext;
 private JPopupMenu pop;
 private JMenuItem copyItem, pasteItem, cutItem;

 public Movedata(String s) {
  super(s);
  panel = new JPanel();
  namelabel = new JLabel("姓名");
  nametext = new JTextField(20);
  FlowLayout lay = new FlowLayout();
  lay.setAlignment(FlowLayout.CENTER);
  panel.setLayout(lay);
  panel.add(namelabel);
  panel.add(nametext);
  this.add(panel);
  pop = new JPopupMenu();
  pop.add(copyItem = new JMenuItem("复制"));
  pop.add(pasteItem = new JMenuItem("粘贴"));
  pop.add(cutItem = new JMenuItem("剪切"));
  nametext.addMouseListener(new MouseAdapter() {
   public void mousePressed(MouseEvent e) {
    if (e.getButton() == MouseEvent.BUTTON3) {
     pop.show(nametext, e.getX(), e.getY());
    }
   }
  }

  );
  nametext.add(pop);
  copyItem.addActionListener(this);
  pasteItem.addActionListener(this);
  cutItem.addActionListener(this);
  this.setBounds(500, 300, 300, 120);
  this.setVisible(true);

 }

 @Override
 public void actionPerformed(ActionEvent e) {
  if (e.getSource() == copyItem) {
   String name = nametext.getSelectedText();
   nametext.copy();
  }
  if (e.getSource() == pasteItem) {
   String name = nametext.getSelectedText();
   nametext.paste();
  }
  if (e.getSource() == cutItem) {
   String name = nametext.getSelectedText();
   nametext.cut();
  }
 }

 public static void main(String args[]) {
  Movedata rightMenu = new Movedata("复制粘贴剪切");
 }
}

你可能感兴趣的:(复制,粘贴,剪切,右键菜单,java)