- import java.awt.datatransfer.Clipboard;
- import java.awt.datatransfer.DataFlavor;
- import java.awt.datatransfer.Transferable;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.awt.event.InputEvent;
- import java.awt.event.MouseEvent;
- import java.awt.event.MouseListener;
- import javax.swing.JFrame;
- import javax.swing.JMenuItem;
- import javax.swing.JPopupMenu;
- import javax.swing.JScrollPane;
- import javax.swing.JTextArea;
- import javax.swing.KeyStroke;
- import javax.swing.UIManager;
- /**
- * Java右键菜单实现文本组件内容的的复制、粘贴、剪切功能
- *
- */
- public class Test extends JFrame {
- private static final long serialVersionUID = -5942087991012920147L;
- private JScrollPane pane = null;
- private TextAreaMenu text = null;
- public Test() {
- super("右键菜单");
- try { // 使用Windows的界面风格
- UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
- } catch (Exception e) {
- e.printStackTrace();
- }
- text = new TextAreaMenu();
- pane = new JScrollPane(text);
- this.getContentPane().add(pane);
- this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- this.setSize(300, 200);
- this.setVisible(true);
- }
- public static void main(String args[]) {
- new Test();
- }
- /**
- * 带有功能菜单的JTextArea
- *
- */
- class TextAreaMenu extends JTextArea implements MouseListener {
- private static final long serialVersionUID = -2308615404205560110L;
- private JPopupMenu pop = null; // 弹出菜单
- private JMenuItem copy = null, paste = null, cut = null; // 三个功能菜单
- public TextAreaMenu() {
- super();
- init();
- }
- private void init() {
- this.addMouseListener(this);
- pop = new JPopupMenu();
- pop.add(copy = new JMenuItem("复制"));
- pop.add(paste = new JMenuItem("粘贴"));
- pop.add(cut = new JMenuItem("剪切"));
- copy.setAccelerator(KeyStroke.getKeyStroke('C', InputEvent.CTRL_MASK));
- paste.setAccelerator(KeyStroke.getKeyStroke('V', InputEvent.CTRL_MASK));
- cut.setAccelerator(KeyStroke.getKeyStroke('X', InputEvent.CTRL_MASK));
- copy.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- action(e);
- }
- });
- paste.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- action(e);
- }
- });
- cut.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- action(e);
- }
- });
- this.add(pop);
- }
- /**
- * 菜单动作
- * @param e
- */
- public void action(ActionEvent e) {
- String str = e.getActionCommand();
- if (str.equals(copy.getText())) { // 复制
- this.copy();
- } else if (str.equals(paste.getText())) { // 粘贴
- this.paste();
- } else if (str.equals(cut.getText())) { // 剪切
- this.cut();
- }
- }
- public JPopupMenu getPop() {
- return pop;
- }
- public void setPop(JPopupMenu pop) {
- this.pop = pop;
- }
- /**
- * 剪切板中是否有文本数据可供粘贴
- *
- * @return true为有文本数据
- */
- public boolean isClipboardString() {
- boolean b = false;
- Clipboard clipboard = this.getToolkit().getSystemClipboard();
- Transferable content = clipboard.getContents(this);
- try {
- if (content.getTransferData(DataFlavor.stringFlavor) instanceof String) {
- b = true;
- }
- } catch (Exception e) {
- }
- return b;
- }
- /**
- * 文本组件中是否具备复制的条件
- *
- * @return true为具备
- */
- public boolean isCanCopy() {
- boolean b = false;
- int start = this.getSelectionStart();
- int end = this.getSelectionEnd();
- if (start != end)
- b = true;
- return b;
- }
- public void mouseClicked(MouseEvent e) {
- }
- public void mouseEntered(MouseEvent e) {
- }
- public void mouseExited(MouseEvent e) {
- }
- public void mousePressed(MouseEvent e) {
- if (e.getButton() == MouseEvent.BUTTON3) {
- copy.setEnabled(isCanCopy());
- paste.setEnabled(isClipboardString());
- cut.setEnabled(isCanCopy());
- pop.show(this, e.getX(), e.getY());
- }
- }
- public void mouseReleased(MouseEvent e) {
- }
- }
- }
相关推荐
Java Swing下文件复制的实现方法.pdf
Java Swing下文件复制的实现方法.pdf
java swing jtable 右击_Java-JTable右键单击复制/粘贴菜单以一键复制...
两件事情…>我不确定您如何期望DefaultEditorKit.CopyAction和DefaultEditorKit.PasteAction与JTable一起使用,这些应该与JTextComponents一起使用…> JTable只会在左键按下(或更改键盘导航)时突出显示该行,默认情况下,右键单击不会选中该行.现在,我想使用JTable的组件弹出窗口支持,但这似乎消耗了所有鼠标事件,...
从零到一:RagFlow源码架构深度解析与二次开发实战指南
本文深入解析RagFlow源码架构,提供从环境搭建到二次开发的全流程实战指南。作为企业级AI搜索框架,RagFlow通过模块化设计和多模态处理能力,支持自定义智能体开发与文搜文档功能,帮助开发者高效构建智能搜索系统。
Swing-右键菜单
MyFrame : 设计思路: 1、创建JPopup右键菜单对象; 2、添加内容面板JPanel; 3、创建一个自定义的右键菜单项目键,包括图片+名字+事件; 4、将菜单项添加到右键菜单; 5、添加面板事件处理:当右键点击面板时,出现右键菜单; 6、创建一个监听器,用于表示点击菜单项操作; package swing01; import java.awt.BorderLay...
基于强化学习的工业SCR脱硝系统控制算法设计与实现
本文提出了一种基于强化学习的工业SCR脱硝系统智能控制方法。针对SCR系统存在的非线性、大滞后和多变量耦合等控制难点,研究采用混合建模方法构建了精度在5%以内的系统模型,并设计了专门的强化学习环境。该方法通过定义合理的动作空间和状态空间,结合物理约束设计损失函数,利用深度强化学习算法优化氨喷射控制策略。相比传统PID控制,该智能控制器能更好地适应烟气参数波动,实现NOx排放的稳定控制,为工业环保设施提供了更优的自动化解决方案。
在PyCharm中配置使用Anaconda环境
在PyCharm中配置使用Anaconda环境一、步骤1.Anaconda2.PyCharm总结 一、步骤 1.Anaconda 如未安装Anaconda可至其官网下载,学习使用个人版就可以了。 下载地址:https://www.anaconda.com/products/individual 1、打开Anaconda Navigator,点击Environments可以看到anaconda中已经有了默认的“base”环境,其中包含了大多数我们会用到的包,在PyCharm中可以直接使用该环境,而无需自行下载
java实现复制剪切粘贴操作(面向接口)
3.粘贴操作:用户选择要粘贴的文件路径,然后程序会从临时文件中将用户文件写入用户要粘贴的文件夹中。2.剪切操作:用户选择要剪切的文件路径,然后程序将剪切的文件的路径存放到一个临时文件夹中,再将原文件删除。复制和剪切都放在同一个临时文件夹中。1.复制操作:用户选择要复制的文件路径,然后程序将复制的文件的文件路径存放到一个临时文件夹中。4.进行复制剪切操作时要判断文件是否存在,存在才能进行此操作,否则提示用户文件不存在。本人能力有限,暂时实现文本类型的复制剪切粘贴操作,如有错误的地方,欢迎指正!
保姆级教程:用OSSH免费版+FreeRADIUS+FreeAC NAC,从零搭建一套企业级无线Portal认证系统
本文提供了一套基于OSSH免费版、FreeRADIUS和FreeAC NAC的企业级无线Portal认证系统搭建教程。从环境规划、核心组件安装到认证策略与用户管理,详细介绍了如何利用开源工具构建高效、安全的认证体系,特别适用于预算有限但需求严格的企业场景。
java记事本实现剪切、复制、粘贴、删除
本文介绍了java记事本如何实现剪切、复制、粘贴、删除功能,以及这些功能可用性的判断。其中,关键点在于与系统剪贴板的交互。
AI Agent技术架构与规模化应用:2025年技术深度解析
2025年,AI Agent(人工智能智能体)迎来了规模化应用的拐点时刻。根据Gartner等权威机构预测,企业软件中整合自主型AI的比例将从2024年的不足1%跃升至2028年的33%。本文深入剖析AI Agent的核心技术架构,从规划模块、记忆模块、工具调用模块到底层实现原理,结合Python和Go语言的实际代码示例,全面阐述AI Agent的技术实现路径。同时,本文探讨多智能体协作系统、企业级部署架构以及未来的技术演进方向,为开发者和技术决策者提供系统性的技术参考。关键词:AI Agent、大语言模型
数据包络分析(超效率-SBM模型)附python代码
超效率-SBM模型超效率SBMpython代码(部分) 这段时间差不多忙完了,终于有时间可以来经营我的博客了。 上阵子挺多人私信我,原谅我记性不好,可能没有回复全。 这篇文章是超效率的扩展。 超效率SBM SBM本身就是非径向模型(non-radial model),想要了解径向超效率的请自行去前面翻阅。 上篇文章说到super-SBM的一个模型,公式为: 这个模型是分式模型,我们可以通过charnes cooper变换,将其转变成为: python代码(部分) 在编程过程中,本来我以为第一个模型是无
【Java代码-A002】通过Java简单实现文件的复制操作,快速上手 - 简易版
文件操作;文件复制;Java代码;快速上手;效率测评;
基于STM32L4XX 、HAL库的ATD5984步进电机驱动器驱动程序应用设计
一、简介: ATD5984是一款内部集成了译码器的微特步进电机 驱动器,能使双极步进电机以全、半、1/4、/1/8、1/16 和1/32步进模式工作。步进模式由逻辑输入管脚MSx选 择。其输出驱动能力达到28V±1.6A。 译码器是ATD5984易于使用的关键,通过STEP管脚 输入一个脉冲就可以使电机完成一次步进,省去了相序 表,高频控制线及复杂的编程接口,使其更适于没有复 杂的微处理器或微处理器负担过重的场合。 在步进操作期间,ATD5984的内部电路可以自动
java用swing实现记事本_Java Swing实现一个简单而优美的记事本( 较详细注释 )
Java Swing实现具有基本功能的记事本目前实现了:文件新建打开保存退出前保存询问编辑剪切复制粘贴清除撤销格式字体选择字体颜色选择帮助关于 (样式采用了css与html来描绘)工具栏图标形式的:保存复制粘贴剪切文字加粗文字斜体底部状态栏文本字数实时统计日期显示编码显示(其实是假的哈哈)右键弹出菜单复制粘贴剪切工具栏和右键弹出菜单共享了一些图标,特别地,右键弹出菜单使用了鼠标监听器来实时报告鼠标...
1、基于改进3D卷积神经网络的阿尔茨海默病分类
本文提出了一种基于改进3D卷积神经网络的阿尔茨海默病(AD)分类方法,利用3D CNN对预处理后的T1加权MRI数据进行空间特征提取,并在VGG网络结构中引入类似ResNet的跳跃连接以缓解模型退化和过拟合问题。实验基于ADNI数据集,包含AD、MCI和NC三类样本,结果表明改进后的3D VGG模型在AD/NC、MCI/NC及多分类任务中均取得了优异性能,尤其在AD/MCI/NC分类中准确率达到98.50%,优于现有典型3D深度学习方法。研究验证了3D CNN在脑部疾病诊断中的有效性,并为AD的早期识别提供
LinePhone3.2.7(android端最新版本) sip客户端
SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/
【超详细】如何使用Java Swing开发一个记事本
如何使用Java开发一个记事本? 一、需求分析 我们需要哪些需求呢? 首先第一个问题,就是关于记事本的用法,我们一般情况下使用记事本都是处理一些简单的问题,所以一个占满整个窗口的文本框就再合适不过了。参考Windows的记事本,我们可以发现,我们还需要一个菜单栏,来装载记事本的核心功能。 1、文件菜单 文件菜单一般包含新建、打开、保存、退出等功能。这些功能一般都需要一定的条件语句执行,不然会导致用户的编辑内容丢失。 2、编辑菜单 在这个菜单下一般集成复制粘贴、查找替换、撤销重做等功能。 3、查看菜单 我在这
pscad IEEE标准系统搭建说明
pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。
Java Swing实现一个简单而优美的记事本( 较详细注释 )
Java Swing实现具有基本功能的记事本 目前实现了: 文件 新建 打开 保存 退出前保存询问 编辑 剪切 复制 粘贴 清除 撤销 格式 字体选择 字体颜色选择 帮助 关于 (样式采用了css与html来描绘) 工具栏 图标形式的: 保存 复制 粘贴 剪切 文字加粗 文字斜体 底部状态栏 文本字数实时统计 日期显示 编码显示(其实是假的哈哈) 右键弹出菜单 ...
jre9下载 jdk9
(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】
Java弹出菜单,为JTextArea添加了右键弹出式菜单,实现了复制、粘贴、剪切
Java鼠标右键弹出菜单,该例子为JTextArea添加了右键弹出式菜单,实现了复制、粘贴以及剪切功能。 import java.awt.datatransfer.Clipboard;import java.awt.datatransfer.DataFlavor;import java.awt.datatra
实现JTextfield 的右键 复制、剪切、粘贴功能。
import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.Transferable; import java.awt.event.ActionEvent; import java.awt.event.ActionListener;...
Java Swing实战:打造简易高效的文件资源管理器
本项目为一个基于 Java Swing 开发的简易文件资源管理器,旨在实现桌面端常见的文件操作功能。系统采用模块化设计,分为界面层(目录树、文件列表、控制栏、状态栏)、控制层(文件操作控制器)和文件操作层(查找、复制、粘贴、预览、重命名、统计等)。项目支持多线程处理,保证界面操作的流畅性;具有人性化的交互提示和异常处理,便于日常文件管理和学习实践。适合作为Java初学者的课程设计或桌面开发入门项目。
java记事本复制粘贴_Java Swing 如何实现记事本中“编辑”菜单下的 剪切,复制,粘贴,删除,全选 功能...
这篇文字将要学习以下知识点:1.如何给JButton按钮添加鼠标点击事件监听器#1.addMouseListener(MouseListener l) 给JButton添加一个鼠标点击监听器l2.文本区控件JTextArea 中的方法(剪切,复制,粘贴,删除,全选 功能的实现)#1.cut() 先在文本区控件中选中一段文字,然后调用此方法就可以将文字#剪切#到剪贴板(效果和windows中的...
实现JTextfield 的右键 复制、剪切、粘贴功能
转自:http://leagion.iteye.com/blog/572730 先存下来,有空研究 import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.DataFlavor; import ja...
Java右键菜单实现文本组件内容的的复制、粘贴、剪切功能
import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.Transferable; import java.awt.event.ActionEvent; import java.awt.event.ActionL
【JAVA】实现JTextfield 的右键 复制、剪切、粘贴功能
import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.Transferable; import java.awt.event.ActionEvent; import java.awt.event.ActionListe...
929



被折叠的 条评论
为什么被折叠?



