给JTextArea添加右键菜单

给JTextArea添加右键菜单

package jTextarea;import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
import javax.swing.JTextArea;public class 右键菜单JTextArea2405250252 extends JTextArea{/*** */private static final long serialVersionUID = 1L;{/*** 设置右键菜单*/JPopupMenu jPopupMenu = new JPopupMenu("右键菜单Label");JMenuItem jMenuItem粘贴1 = new JMenuItem("粘贴1paste");jMenuItem粘贴1.addActionListener(new ActionListener() {    //匿名内部类@Overridepublic void actionPerformed(ActionEvent e) {右键菜单JTextArea2405250252.this.paste();}});jPopupMenu.add(jMenuItem粘贴1);JMenuItem jMenuItem复制 = new JMenuItem("复制copy");jMenuItem复制.addActionListener(new ActionListener() {    //匿名内部类@Overridepublic void actionPerformed(ActionEvent e) {右键菜单JTextArea2405250252.this.copy();}});jPopupMenu.add(jMenuItem复制);JMenuItem jMenuItem剪切 = new JMenuItem("剪切cut");jMenuItem剪切.addActionListener(event->{ 右键菜单JTextArea2405250252.this.cut(); });    //拉姆达jPopupMenu.add(jMenuItem剪切);JMenuItem jMenuItem粘贴2 = new JMenuItem("粘贴2paste");jMenuItem粘贴2.addActionListener(event->{ 右键菜单JTextArea2405250252.this.paste(); });jPopupMenu.add(jMenuItem粘贴2);JMenuItem jMenuItem全选 = new JMenuItem("全选selectAll");jMenuItem全选.addActionListener(event->{ 右键菜单JTextArea2405250252.this.selectAll(); });jPopupMenu.add(jMenuItem全选);右键菜单JTextArea2405250252.this.add(jPopupMenu);右键菜单JTextArea2405250252.this.addMouseListener(new MouseAdapter() {@Overridepublic void mouseReleased(MouseEvent event) {if (event.isPopupTrigger()) {jPopupMenu.show(右键菜单JTextArea2405250252.this, event.getX(), event.getY());  //在鼠标坐标显示右键菜单}}});}}

package jTextarea;

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

import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
import javax.swing.JTextArea;

public class 右键菜单JTextArea2405250252 extends JTextArea{

/*** */
private static final long serialVersionUID = 1L;{/*** 设置右键菜单*/JPopupMenu jPopupMenu = new JPopupMenu("右键菜单Label");JMenuItem jMenuItem粘贴1 = new JMenuItem("粘贴1paste");jMenuItem粘贴1.addActionListener(new ActionListener() {    //匿名内部类@Overridepublic void actionPerformed(ActionEvent e) {右键菜单JTextArea2405250252.this.paste();}});jPopupMenu.add(jMenuItem粘贴1);JMenuItem jMenuItem复制 = new JMenuItem("复制copy");jMenuItem复制.addActionListener(new ActionListener() {    //匿名内部类@Overridepublic void actionPerformed(ActionEvent e) {右键菜单JTextArea2405250252.this.copy();}});jPopupMenu.add(jMenuItem复制);JMenuItem jMenuItem剪切 = new JMenuItem("剪切cut");jMenuItem剪切.addActionListener(event->{ 右键菜单JTextArea2405250252.this.cut(); });    //拉姆达jPopupMenu.add(jMenuItem剪切);JMenuItem jMenuItem粘贴2 = new JMenuItem("粘贴2paste");jMenuItem粘贴2.addActionListener(event->{ 右键菜单JTextArea2405250252.this.paste(); });jPopupMenu.add(jMenuItem粘贴2);JMenuItem jMenuItem全选 = new JMenuItem("全选selectAll");jMenuItem全选.addActionListener(event->{ 右键菜单JTextArea2405250252.this.selectAll(); });jPopupMenu.add(jMenuItem全选);右键菜单JTextArea2405250252.this.add(jPopupMenu);右键菜单JTextArea2405250252.this.addMouseListener(new MouseAdapter() {@Overridepublic void mouseReleased(MouseEvent event) {if (event.isPopupTrigger()) {jPopupMenu.show(右键菜单JTextArea2405250252.this, event.getX(), event.getY());  //在鼠标坐标显示右键菜单}}});
}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/14764.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java进阶学习笔记3——static修饰成员方法

成员方法的分类: 类方法:有static修饰的成员方法,属于类: 成员方法:无static修饰的成员方法,属于对象。 Student类: package cn.ensource.d2_staticmethod;public class Student {double scor…

双拼打字,可以尝试这个练习平台

本文将介绍由本人开发的双拼练习平台打字侠,以及一些对新手学习双拼的建议。课程一共233课,共分为两大部分: 韵母键位,主要练习双拼中韵母对应的键盘键位,同时提供可视化的键盘指法示意图。 实战练习,同时…

Selenium常用命令(python版)

日升时奋斗,日落时自省 目录 1、Selenium 2、常见问题 1、Selenium 安装Python和配置环境没有涉及 注:如有侵权,立即删除 首先安装selenium包,安装方式很简单 pip install selenium 注:我这里已经安装好了,所以…

怎么一键消除路人?教你三个消除方法

怎么一键消除路人?在数字时代,摄影已成为我们记录生活、表达情感的重要方式。然而,完美的照片背后往往隐藏着一些不那么完美的元素——比如那些不经意间闯入镜头的路人。他们或许只是匆匆过客,但却足以破坏你精心构图的美好瞬间。…

分割文本文件

分割一个.txt文件,可以选择在命令行中使用split指令,或者编写一段脚本进行操作。以下是一个简单的Python脚本来分割文本文件: def split_file(file, lines):# Open source filewith open(file, r) as source:count 0atEOF Falsewhile not …

shell笔记脚本3

执行脚本文件demo2.sh, 观察打印VAR4效果 执行脚本文件后, 在交互式Shell环境打印VAR4, 观察打印VAR4效果 结论 全局变量在当前Shell环境与子Shell环境中可用, 父Shell环境中不可用 小结 自定义变量的分类 自定义局部变量: 就是在一个脚本文件内部使用 var_namevalue 自…

128天的创意之旅:从初心到成就,我的博客创作纪念日回顾

文章目录 🚀机缘:初心的种子——回望创作之旅的启航🌈收获:成长的果实——128天创作之旅的宝贵馈赠❤️日常:创作与生活的交织👊成就:代码的艺术🚲憧憬:未来的蓝图 &…

python3 pandas

pandas - Python Data Analysis Library

Mujoco仿真【xml文件的学习 3】

在学习Mujoco仿真的过程中,为了与时俱进,之前的mujoco210版本不再使用,改用了mujoco-3.1.4版本,下面继续mujoco仿真的学习! 先前关于mujoco的学习博客汇总如下: 强化学习:MuJoCo机器人强化学习…

2024最新(PC+WEB+IOS+Android)即时通讯系统客户端仿默往IM源码下载

2024最新(PCWEBIOSAndroid)即时通讯系统客户端仿默往IM源码下载(总大小约2.4G) 系统功能配置灵活、海量并发、稳定可靠、数据安全,2小时快速部署、数据安全、单聊群聊、系统通知等通信功能,支持App、PC、Web等多端快速接入。 群功能&#xf…

gtask笔记

1、创建Task GTask *g_task_new (gpointer source_object, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer callback_data); source_object:GObject对象,拥有者 cancellable:可否取消 callback:task完成后…

Linux 软件包管理器 yum的下载、功能介绍及使用

🪐🪐🪐欢迎来到程序员餐厅💫💫💫 主厨:邪王真眼 主厨的主页:Chef‘s blog 所属专栏:青果大战linux 总有光环在陨落,总有新星在闪烁 Linux下的三种软件安装方…

panic对defer语句的执行的影响

1.主线程中的panic会直接导致所有正在运行的go协程无法执行,还会导致声明在它之后的defer语句无法执行。 package mainimport ("fmt""time" )func main() {defer fmt.Println("defer1") //声明在panic之前的defer会执行go func() {defer fmt.Pri…

蓝桥杯Web开发【大赛大纲】15届

一、 组别 Web应用开发分为:大学组和职业院校组。 每位选手只能申请参加其中一个组别的竞赛。各个组别单独评奖。 研究生和本科生只能报大学组。 其它高职高专院校可自行选择报任意组别。 二. 竞赛赛程 省赛时长:4小时。 决赛时长:4小…

模板方法及设计模式——Java笔记

模板方法及设计模式 抽象类体现的就是一种模板模式的设计,抽象类作为多个子类的通用模板,子类在抽象类的基础上进行扩展、改造,但子类总体上会保留抽象类的行为方式。 解决的问题: 当功能内部一部分实现是确定的,另一…

Android 启动页闪过白色背景

Android 启动页闪过白色背景 1.解决方式&#xff1a;为启动页设置主题。直接在manifest中设置android:style“style/StartTheme” <style name"StartTheme" parent"Theme.AppCompat.Light"><item name"windowActionBar">false</…

LeetCode:279.完全平方数

class Solution:def numSquares(self, n: int) -> int:dp[i for i in range(n1)]for i in range(2,n1):for j in range(1,int(i**(0.5))1):dp[i]min(dp[i],dp[i-j*j]1)return dp[-1]代码解释 初始化 DP 数组&#xff1a; dp [i for i in range(n1)] 这里&#xff0c;dp[i]…

五分钟”手撕“图书管理系统

前言&#xff1a; 图书馆管理系统需要结合JavaSE的绝大部分知识&#xff0c;是一个很好的训练项目。 为了让大家更加方便的查阅与学习&#xff0c;我把代码放开头&#xff0c;供大家查询。 还有对代码的分析&#xff0c;我将以类为单位分开讲解。 目录 全部代码 Main类 Us…

如何排查hpet导致的CPU高负载——《OceanBase诊断系列》之十

1. 前言 我在OceanBase问答社区协助用户排查了一个CPU占用率过高的问题&#xff0c;帖子原文是&#xff1a; 《刚刚新安装的OceanBase集群&#xff0c;没有任何数据&#xff0c;CPU占用非常高&#xff0c;这正常吗&#xff1f;》。从这个场景出发&#xff0c;来分享相关的诊断…

Rabbitmq-Windows 安装

第一步&#xff1a;下载并安装erlang &#xff11;.原因&#xff1a;RabbitMQ服务端代码是使用并发式语言Erlang编写的&#xff0c;安装Rabbit MQ的前提是安装Erlang &#xff12;.下载地址&#xff1a;http://www.erlang.org/downloads 3.双击&#xff0c;点next就可以 4.选…