java多文本框使用右键弹出菜单复制粘贴剪切功能实现

本文介绍了如何在Java中利用JPopupMenu为多个文本框实现右键弹出菜单,以及复制、粘贴和剪切功能。通过自定义代码和借鉴网络资源,成功创建了一个界面,该界面允许用户通过右键操作在文本框间进行文本的复制、粘贴和剪切。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在学习JPopupMenud的过程中,做了一个小软件。实现了多个文本框,同时使用右键弹出菜单,并实现复制、粘贴、剪切功能。

实际上在网上查的时候,网上有一个很普遍的右键复制、粘贴、剪切的功能(http://blog.youkuaiyun.com/xinem/article/details/3866904)。我抄过来发现可以实现功能,但不是很懂怎么实现复制、粘贴、和剪切功能。于是自己摸索了,写了一个。

这个小软件,主要实现了两个文本框同时可以使用右键弹出菜单的复制、粘贴、剪切功能。

小软件的界面用netbeans画出来的,包括JPopupMenu都是这样子的。

这个软件,部分代码用了网上那个流传广泛的代码。

以下是我的软件代码:

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */


import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable;
import java.awt.event.ActionEvent;
import java.awt.event.MouseEvent;
import javax.swing.JTextField;

/**
 *
 * @author peade
 */
public class NewJFrame extends javax.swing.JFrame {

    /**
     * Creates new form NewJFrame
     */
    public NewJFrame() {
        initComponents();
        //将右键弹出菜单添加到文本框
        jTextField1.setComponentPopupMenu(jPopupMenu1);
        jTextField2.setComponentPopupMenu(jPopupMenu1);
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jPopupMenu1 = new javax.swing.JPopupMenu();
        copyb = new javax.swing.JMenuItem();
        pasteb = new javax.swing.JMenuItem();
        cutb = new javax.swing.JMenuItem();
        jTextField1 = new javax.swing.JTextField();
        jTextField2 = new javax.swing.JTextField();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();

        copyb.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_C, java.awt.event.InputEvent.CTRL_MASK));
        copyb.setText("复制");
        copyb.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                copybActionPerformed(evt);
            }
        });
        jPopupMenu1.add(copyb);

        pasteb.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_V, java.awt.event.InputEvent.CTRL_MASK));
        pasteb.setText("粘贴");
        pasteb.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                pastebActionPerformed(evt);
            }
        });
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值