- 浏览: 5217901 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (756)
- postgreSQL (1)
- 数据库 (18)
- oracle (1)
- Java Web (212)
- ZK框架 (0)
- installanywhere (0)
- linux命令 (51)
- dos cmd (3)
- 随笔_随感 (14)
- Java (290)
- C (1)
- unix (11)
- C++ (0)
- perl (0)
- python (10)
- ruby (2)
- bash (4)
- mysql (8)
- android (5)
- 法律 (0)
- maven ant (2)
- ios (11)
- Continuous integration (3)
- java swing (71)
- java swt (4)
- spring MVC (26)
- javascript (139)
- css (23)
- libgdx (0)
- nginx (9)
- loadruner (0)
- php (5)
- git (9)
- IDEA (6)
- 接口调试神器 (9)
- 数学math (1)
- eclipse (2)
- mac (17)
- freemark (0)
- ajax (1)
- less (1)
- zookeeper (1)
- react (3)
- html5 (3)
- jQuery (1)
- gitlab (2)
- shell (6)
- zsh (1)
- hibernate (6)
- gradle (3)
- groovy (3)
- 分布式锁 (1)
最新评论
-
fanchengliang:
好用,特地登录了来顶
破解 navicat premium 11 -
w_mojian180:
这个方法对于子类来说是没效果的
Spring AOP会忽略从父类继承的方法 -
cremains:
如何使用redis实现分布式锁 -
wangyudong:
没这么麻烦吧,网上找了一个Holer工具,只需要配置一个Acc ...
公网访问局域网内的数据库 -
haoxuexi87:
Jmeter性能测试从入门到精通(2018年最新)课程观看地址 ...
JMeter 接口测试入门01
类UndoTextArea:
package com.pass.component; import java.awt.event.ActionEvent; import javax.swing.AbstractAction; import javax.swing.JTextArea; import javax.swing.KeyStroke; import javax.swing.event.UndoableEditEvent; import javax.swing.event.UndoableEditListener; import javax.swing.text.Document; import javax.swing.undo.CannotRedoException; import javax.swing.undo.CannotUndoException; import javax.swing.undo.UndoManager; public class UndoTextArea extends JTextArea { private static final long serialVersionUID = 2622113838910292609L; UndoManager undo = new UndoManager(); Document doc = getDocument(); public void stopUndo() { // undo.die(); undo.discardAllEdits(); } public UndoTextArea() { doc.addUndoableEditListener(new UndoableEditListener() { public void undoableEditHappened(UndoableEditEvent e) { undo.addEdit(e.getEdit()); } }); addActionMap(); } public void addActionMap() { getActionMap().put("Undo", new AbstractAction("Undo11") { private static final long serialVersionUID = 2434402629308759912L; public void actionPerformed(ActionEvent evt) { try { boolean b = undo.canUndo(); // System.out.println("whether undo : "+b); if (b) { undo.undo(); } } catch (CannotUndoException e) { } } }); getInputMap().put(KeyStroke.getKeyStroke("control Z"), "Undo"); getActionMap().put("Redo", new AbstractAction("Redo1111") { private static final long serialVersionUID = 5348330289578410517L; public void actionPerformed(ActionEvent evt) { try { if (undo.canRedo()) { undo.redo(); } } catch (CannotRedoException e) { } } }); getInputMap().put(KeyStroke.getKeyStroke("control R"), "Redo"); getActionMap().put("Copy", new AbstractAction("Copy111") { private static final long serialVersionUID = -5151480809625853288L; public void actionPerformed(ActionEvent evt) { copy(); } }); getInputMap().put(KeyStroke.getKeyStroke("control C"), "Copy"); getActionMap().put("Cut", new AbstractAction("Cut") { private static final long serialVersionUID = 7316612864835857713L; public void actionPerformed(ActionEvent evt) { cut(); } }); getInputMap().put(KeyStroke.getKeyStroke("control X"), "Cut"); getActionMap().put("Paste", new AbstractAction("Paste111") { private static final long serialVersionUID = -3548620001691220571L; public void actionPerformed(ActionEvent evt) { paste(); } }); getInputMap().put(KeyStroke.getKeyStroke("control V"), "Paste"); } }
测试类:FrameMain
package com.pass.test; import java.awt.Color; import java.awt.GridLayout; import javax.swing.JFrame; import javax.swing.JPanel; import com.pass.component.UndoTextArea; public class FrameMain extends JFrame { private static final long serialVersionUID = 3526577815017461757L; public static void main(String[] args) { new FrameMain().launchFrame(); } public void launchFrame(){ JPanel pane=new JPanel(); pane.setLayout(new GridLayout(2, 1)); UndoTextArea txt1= new UndoTextArea(); txt1.setBackground(new Color(255, 255, 100)); txt1.setText("txt1"); txt1.stopUndo(); UndoTextArea txt2= new UndoTextArea(); txt2.setBackground(new Color(255, 100, 100)); txt2.setText("txt2"); txt2.stopUndo(); pane.add(txt1); pane.add(txt2); this.getContentPane().add(pane); this.setBounds(100, 100, 400, 400); this.setDefaultCloseOperation(3); this.setVisible(true); } }
运行FrameMain,弹出swing窗口
随便输入什么内容,然后Ctrl+Z 就可以进行测试了。
发表评论
-
阿里巴巴2020年校招开始啦
2019-03-15 11:19 3565大家好! 我是黄威,2011年武汉毕业的, 现在在阿 ... -
java多线程知识整理
2018-08-09 09:08 1856java多线程知识整理 本文不是入门篇,仅记录容易出错 ... -
springMVC 自定义400或404页面/响应
2018-03-20 00:07 4441摘要: SpringMVC 自带的400或404 页面都是网 ... -
根据java 实体类生成建表语句
2018-03-01 10:53 6190根据java 实体类生成建表语句 直接上代码: pack ... -
java socket实现的简易的聊天工具demo
2018-02-28 15:32 3288这是一个使用原生java socket实现的简易的聊天工具d ... -
把字符串转化为json
2017-05-17 10:46 1811把字符串转化为json 任务: 把字符串 {" ... -
java 反射调用成员方法
2017-04-11 08:58 1388java 反射调用成员方法 public static G ... -
让cookie失效要注意的问题
2017-04-09 14:01 6603让cookie失效要注意的 ... -
java 文件名过滤特殊字符
2017-03-14 13:25 5385java 文件名过滤特殊字符 /** * 过滤 ... -
java 时间相关操作
2017-03-06 10:39 619java 时间相关操作 (1) public s ... -
java 解决实体类序列化时,报failed to lazily initialize 的问题
2017-01-25 17:02 4600java 解决实体类序列化时,报failed to lazi ... -
maven批量打包,并且显示打包结果
2017-01-23 13:54 3423maven批量打包,并且显示打包结果 #!/bin/ba ... -
java 初始化Number包装类型
2017-01-22 10:06 2509java 初始化Number包装类型 比如有的java b ... -
java 反序列化复杂Map
2017-01-19 15:31 10541java 如何反序列化复杂的map呢? 例如: 待反 ... -
java把截图上传至服务器
2017-01-16 14:32 1667java 把上传截图到服务器 (1)从JTextArea或 ... -
正则表达式的一些常用场景
2017-01-04 09:29 1141正则表达式的一些常用场景 (1)过滤表情符号 /*** ... -
java 正则表达式获取文本中数字
2016-12-27 20:07 5335java 正则表达式获取字符串中的数字 实例: publ ... -
org.apache.http.client.methods.HttpPost的使用和坑
2016-12-23 16:18 3522org.apache.http.client.methods ... -
java 匹配非换行
2016-12-13 17:28 1578java 匹配非换行 @Test public ... -
java.lang.OutOfMemoryError: unable to create new native thread
2016-09-06 20:57 1060运行java swing程序时,报错: xception ...
相关推荐
我们可以在菜单中添加一个“跳转到行”选项,弹出输入框让用户输入行号,然后使用`JTextArea`的`setCaretPosition`方法将光标移动到指定行的开始位置。这里需要处理文本的换行符,根据不同的操作系统(如Windows的`\...
Java的UndoManager类可以帮助我们实现这一功能。 最后,为了让界面看起来更加美观,我们可以使用Layout Managers来组织组件的位置和大小,比如GridLayout、BoxLayout和BorderLayout等。 在项目中,"Text--吴磊.txt...
6. **撤销/重做(Undo/Redo)支持**:增强了用户交互体验。 7. **继承层级**:Swing组件通常继承自`javax.swing.JComponent`,这个类继承自AWT的`java.awt.Component`,并集成了更多的功能。 Swing的主要组件: -...
EditPlus 的编辑窗口中 让你省去做贴上的步骤 另外它也是一个好用的 HTML 编辑器 除了可以颜色标记 HTML Tag 同时支持 C C++ Perl Java 外 还内建完整的 HTML 和 CSS1 指令功能 对于习惯用记事本编辑网页的朋友 它...
它包含了多种组件和元素,如按钮、输入框、抽屉、snackbars等,帮助开发者构建符合现代设计趋势的应用。 【Snackbars】 Snackbars在Material Design中是一种轻量级的通知方式,通常用于显示简短的信息,告知用户...
一套功能强大,可取代记事本的文字编辑器,拥有无限制的 Undo/Redo、英文拼字检查、自动换行、列数标记、搜寻取代、同时编辑多文件、全屏幕浏览功能。而它还有一个好用的功能,就是它有监视剪贴簿的功能,能够同步于...
此外,它支持undo和redo功能,能够动态刷新数据,并有自动调整列宽、支持Ctrl+C拷贝等功能。 2. KDTDesignerFrame控件:这是KDTable属性设置框的使用指南,用于配置和调整KDTable的相关属性。 3. KDTable Script...
一套功能强大,可取代记事本的文字编辑器,拥有无限制的 Undo/Redo、英文拼字检查、自动换行、列数标记、搜寻取代、同时编辑多文件、全屏幕浏览功能。而它还有一个好用的功能,就是它有监视剪贴簿的功能,能够同步于...
一套功能强大,可取代记事本的文字编辑器,拥有无限制的 Undo/Redo、英文拼字检查、自动换行、列数标记、搜寻取代、同时编辑多文件、全屏幕浏览功能。而它还有一个好用的功能,就是它有监视剪贴簿的功能,能够同步于...
一套功能强大,可取代记事本的文字编辑器,拥有无限制的 Undo/Redo、英文拼字检查、自动换行、列数标记、搜寻取代、同时编辑多文件、全屏幕浏览功能。而它还有一个好用的功能,就是它有监视剪贴簿的功能,能够同步于...
(isNaN(value))execCommand('undo')" onafterpaste="if(isNaN(value))execCommand('undo')"> (/\D/.test(this.value)){alert('只允许输入字母');this.value='';}"> ``` 这里,`/\D/`匹配任何非字母数字的字符,`...