免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品精品 记事本材料记事本材料 public voidcopy 拖动选取文本String temp mf body getSelectedText 把获取的内容复制到连续字符 器 这个类继承了剪贴板接口StringSelection text new StringSelection temp 把内容放在剪贴板mf clipboard setCon tents text null 我的mf body是指主只界面上的名字叫body的JT extArea控件 剪切内容跟复制类似 在复制的基础之上再加三行代码 标记开始 位置int start mf body getSelectionStart 标记结束位置int end mf body getSelectionEnd 删除所选段mf body replaceRa nge start end 最复杂的粘贴来了 我看了一些人写这个功能 写得很简陋 还有bug 没有考虑到当要粘贴的时候鼠标已经选中了 一部分内容 当然 要粘贴之前还是先要判断一下剪贴板里面有没有内容 如果 没有当然贴不出什么东西 所以 我就把粘贴这个功能写成public voidpaste Transferable接口 把剪贴板的内容转换成数据Tra nsferable contents mf clipboard getContents this DataFalvor类判断 是否能把剪贴板的内容转换成所需数据类型DataFlavor flavor DataFlavor stringFlavor 如果可以转换if contents is DataFlavorSupported flavor String str try 开始转换str String contents getTransferData flav or 如果要粘贴时 鼠标已经选中了一些字符if mf body getSel ectedText null 定位被选中字符的开始位置int start mf body getSelectionStart 定位被选中字符的末尾位 置int end mf body getSelectionEnd 把粘贴的内容替换成被选中的 内容mf body replaceRange str start end else 获取鼠标所 在TextArea的位置int mouse mf body getCaretPosition 在鼠标所在的位置粘贴内容 mf body insert str mouse catch UnsupportedFlavorExceptio n e e printStackTrace catch IOException e e printStackTrace catch IllegalArgumentException e e printStackTrace 全选是最简单的 body selectAll 函数就能搞定 在没有做这个小软件之前 我也没有接触过怎么做撤销功能的 但 是查了一下API发现了UndoManager这个类 而且操作非常简单 初始化一个UndoManger 然后通过body getDocument addUndoabl eEditListener undoMgr 这个方法 就可以把撤销管理器的监听器 添加到TextArea中 需要调用撤销的时候就调用unoMgr undo 方法 我还做了鼠标的右击弹出一个菜单对文本进行 右击弹出的菜单叫JPopupMenu 然后往里面添加JMenuItem控件 Java的鼠标事件是没有右击事件或者双击事件的 需要自己定义 默认鼠标点击事件 不管你点击的是左键还是右键 事件都会被响 应 不信你可以试试 按钮响应的鼠标点击事件除外 想要在点击TextArea中点击右键就弹出菜单 可以在给TextArea添 加鼠标监听器 在响应函数中添加判断if mouseEven getButton 3 为真就是鼠标的右击事件 除了使用JTextArea控件实现文本 还有一个更方便的的JTextPane 这个控制直接就定义了复制 剪切 粘贴函数 需要用的时候直接 调用就行 不需要在自己编写剪贴板的代码 它已经有这些功能了 添加撤销的方法跟JTextArea一致 不知道是不是我没找到FileDialog的返回值 还有一个比FileDialo g更好使含有返回值的控件JFileChooser JFileChooser的默认路径是系统登陆用户的 我的文档 目录下 如果要修改这个路径 可以通过setCurrentDirectory 修改 先苦后甜 两种方式不妨试试 在功能逻辑的核心设计 那就是要判断每次用户要打开新文件或者 是准备离开之前是否了 如果被了就要提示是否保存 另存为文件的时候 如果是文件名字相同 要提示是否要覆盖文件 如果上面内容还不能解决你的困惑 欢迎给我email arjinmc sina 如果我有空 我都会回复 源代码暂时就不上传 一是这个小项目比较简单 二是怕有些不好 心态的人利用了 可执行文件我上传到网上 大家可以看看效果 查找 查找下一个 package mytree import java awt event import javax swing import java awt public classMyFind extendsJDialog MyFind Frame frame String title boolean b super frame title b Container con getContentPane con setLayout new FlowLayout FlowLayout LEFT JLabel searchContentLabel new JLabel 查找内容 N final JTextFieldfindText new JTextField 18 final JCheckBoxmatchcase new JCheckBox 区分大小写 C ButtonGroup bGroup new ButtonGroup final JRadioButtonup new JRadioButton 向上 U final JRadioButtondown new JRadioButton 向下 D down setSelected true bGroup add u p bGroup add down JButton searchNext new JButton 查找下一个 F JButton cancel new JButton 取消 this setTitle title 创建 查找 对话框的界 面JPanel bottomPanel new JPanel JPanel centerPanel new JPanel JPanel topPanel new JPanel JPanel direction new JPanel direction setBorder BorderFactory createTitledBord er 方向 direction add up direction add down JPanel replacePanel new JPanel replacePanel setLayout new GridLayout 2 1 topPanel add searchContentLabel topPanel add findText topPanel add searchNext centerPanel add repl acePanel bottomPanel add matchcase bottomPanel add direct ion bottomPanel add cancel con add topPanel con add cent erPanel con add bottomPanel 设置 查找与替换 对话框的大 小 可更改大小 否 位置和可见性setSize 430 160 setLocatio n 230 280 查找下一个 按钮事件处理searchNext addActionLi stener new ActionListener public voidactionPerformed ActionEvent e int a 0 b 0 int FindStartPos Notepad text getCaretPosition String str1 str2 str3 str4 strA strB str1 Notepad text getText s tr2 str1 toLowerCase str3 findText getText str4 str3 to LowerCase 区分大小写 的CheckBox被选中if matchcase isSe lected strA str1 strB str3 else strA str2 strB str4 if up isSelected if Notepad text getSelectedText null a strA lastIndexOf strB FindStartPos 1 else a strA lastIndexOf strB FindStartPos findText getText length 1 else if down isSelected if Notepad text getSelectedText nu ll a strA indexOf strB FindStartPos else a strA indexOf strB FindStartPos findText getText length 1 if a 1 if up isSelected Notepad text setCaretPosition a b f indText getText length Notepad text select a a b else if down isSelected Notepad text setCaretPosition a b fi ndText getText length Notepad text select a a b
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 熟食净菜配送服务
- 科技企业租赁合同模板
- 化工企业计划生育承诺书样本
- 医学研究彩超机租赁合同
- 医院绿化带围墙施工协议
- 服务器租赁合作合同
- 城市交通信号暂行管理办法
- 烟草行业托盘租赁协议
- 生态农业科技园建设合同
- 教育信息化项目招投标要点解析
- 苏教版科学五年级上册全册单元测试卷含答案
- 夏商周考古课件 第4章 殷墟文化(1-3节)
- HY/T 0289-2020海水淡化浓盐水排放要求
- GB/T 20721-2022自动导引车通用技术条件
- GB 2749-2015食品安全国家标准蛋与蛋制品
- 蓝色高考加油高考心里减压辅导培训PPT模板
- 纤维素的分子结构课件
- 种子市场细分目标市场的选择与定位讲义
- 国家基本药物目录
- 国家自然科学基金项目申请课件
- 抑郁症和抑郁情绪课件
评论
0/150
提交评论