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

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("复制粘贴剪切");
 }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值