




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
package com.xs.pratice;import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyEvent;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import javax.swing.JCheckBoxMenuItem;import javax.swing.JFileChooser;import javax.swing.JFrame;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.JOptionPane;import javax.swing.JScrollPane;import javax.swing.JTextArea;import javax.swing.JTextPane;import javax.swing.KeyStroke;import javax.swing.WindowConstants;public class NotePadTest extends JFrame private static final long serialVersionUID = 7733222986650734523L;JMenuBar jmb = new JMenuBar();/ 创建子菜单JMenu jm1 = new JMenu(文件);JMenu jm2 = new JMenu(编辑);JMenu jm3 = new JMenu(格式);JMenu jm5 = new JMenu(帮助);/ 创建菜单项(文件)JMenuItem jme1 = new JMenuItem(新建);JMenuItem jme2 = new JMenuItem(打开);JMenuItem jme3 = new JMenuItem(保存);JMenuItem jme4 = new JMenuItem(另存为.);JMenuItem jme5 = new JMenuItem(退出);/ 创建菜单项(编辑)JMenuItem jme6 = new JMenuItem(全选);JMenuItem jme7 = new JMenuItem(剪切);JMenuItem jme8 = new JMenuItem(复制);JMenuItem jme9 = new JMenuItem(粘贴);JMenuItem jme10 = new JMenuItem(删除);/ 创建菜单项(格式)JCheckBoxMenuItem jme11 = new JCheckBoxMenuItem(自动换行, false);/ 创建菜单项(帮助)JMenuItem jme14 = new JMenuItem(查看帮助);JMenuItem jme15 = new JMenuItem(关于记事本);/ 实例化文本域JTextArea jtext = new JTextArea();JTextPane pane = new JTextPane();/ 文本窗格JScrollPane jscroll = new JScrollPane(jtext);JTextPane jtshow = new JTextPane();public NotePadTest() setTitle(记事本);setSize(500, 460);setLocationRelativeTo(null);pane.setLayout(new BorderLayout();/ 设置快捷键jme1.setMnemonic(N);jme1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, KeyEvent.CTRL_MASK);jme2.setMnemonic(O);jme2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, KeyEvent.CTRL_MASK);jme3.setMnemonic(S);jme3.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, KeyEvent.CTRL_MASK);jme6.setMnemonic(A);jme6.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A, KeyEvent.CTRL_MASK);jme7.setMnemonic(X);jme7.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, KeyEvent.CTRL_MASK);jme8.setMnemonic(C);jme8.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, KeyEvent.CTRL_MASK);jme9.setMnemonic(V);jme9.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, KeyEvent.CTRL_MASK);jme10.setMnemonic(L);jme10.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_L, KeyEvent.CTRL_MASK);/ 添加菜单项到子菜单(文件)jm1.add(jme1);jm1.addSeparator();jm1.add(jme2);jm1.addSeparator();jm1.add(jme3);jm1.addSeparator();jm1.add(jme4);jm1.addSeparator();jm1.add(jme5);jmb.add(jm1);/ 添加菜单项到子菜单(编辑)jm2.add(jme6);jm2.addSeparator();jm2.add(jme7);jm2.addSeparator();jm2.add(jme8);jm2.addSeparator();jm2.add(jme9);jm2.addSeparator();jm2.add(jme10);jmb.add(jm2);/ 添加菜单项到子菜单(格式)/ 设置快捷键jme11.setMnemonic(w);jme11.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_W, KeyEvent.CTRL_MASK);jm3.add(jme11);jmb.add(jm3);/ 添加菜单项到子菜单(帮助)jm5.add(jme14);jm5.addSeparator();jm5.add(jme15);jmb.add(jm5);/ 将菜单栏添加到窗体顶部setJMenuBar(jmb);/ container.add(jmb,BorderLayout.NORTH);/ 添加文本域pane.add(jscroll, BorderLayout.CENTER);add(pane);/ *添加事件监听器(全选部分)*jme6.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) jtext.selectAll();/ 全选);/ *添加事件监听器(剪切部分)*jme7.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) jtext.cut();/ 剪切);/ *添加事件监听器(复制部分)*jme8.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) jtext.copy();/ 复制);/ *添加事件监听器(粘贴部分)*jme9.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) jtext.paste();/ 粘贴);/ *添加事件监听器(删除部分)*jme10.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) jtext.replaceSelection(null);/ 删除);/ *添加事件监听器(新建部分)*jme1.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) if (jtext.getText().equals() jtext.setText(); else int result = JOptionPane.showConfirmDialog(NotePadTest.this, 是否将更改保存到无标题?, 记事本,JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE);if (result = 0) save(););/ *添加事件监听器(打开部分)*jme2.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) JFileChooser choose = new JFileChooser();choose.setDialogTitle(打开);File file;int result = choose.showOpenDialog(NotePadTest.this);if (result = JFileChooser.APPROVE_OPTION) try / 获取当前选择的文件/ 创建文件输出流file = choose.getSelectedFile();BufferedReader br = new BufferedReader(new FileReader(file);String str = null;while (str = br.readLine() != null) jtext.append(str + rn);/ 设置记事本标题setTitle(file.getName() + 记事本);br.close(); catch (Exception ee) ee.printStackTrace(););/ *添加事件监听器(保存部分)*jme3.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) if (jtext.getText() != null & !jtext.getText().equals() save(););/ *添加事件监听器(另存为部分)*jme4.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) if (jtext.getText() != null & !jtext.getText().equals() save(););/ *添加事件监听器(退出部分)*jme5.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) if (jtext.getText().equals() NotePadTest.this.dispose(); else int result = JOptionPane.showConfirmDialog(NotePadTest.this, 是否将更改保存到无标题?, 记事本,JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE);if (result = 0) if (jtext.getText() != null & !jtext.getText().equals() save(); else if (result = 1) NotePadTest.this.dispose(););/ *添加事件监听器(自动换行部分)*jme11.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) if (jme11.isSelected() jtext.setLineWrap(true); else jtext.setLineWrap(false););/ *添加事件监听器(查看帮助部分)*jme14.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) JOptionPane.showMessageDialog(NotePadTest.this, 输入文字即可!););/ *添加事件监听器(关于记事本部分)*jme15.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) JOptionPane.showMessageDialog(NotePadTest.this, 版本:Windows旗舰版););/ 设置窗体关闭if (jtext.getText().equals() setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); else if (jtext.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025福建三明尤溪县总医院医学人才校园专场公开招聘5人考前自测高频考点模拟试题及答案详解(各地真题)
- 2025年度周口西华县人民医院校园招聘33人模拟试卷及参考答案详解一套
- 2025年临沂莒南县教体系统部分事业单位公开招聘教师(1名)考前自测高频考点模拟试题及答案详解(必刷)
- 2025湖南株洲市茶陵县卫生健康局所属事业单位就业见习岗位招聘10人模拟试卷及答案详解参考
- 二手房交易资金监管协议6篇
- 2025广东广州市中山大学孙逸仙纪念医院肿瘤科放疗专科科研助理招聘1人考前自测高频考点模拟试题及答案详解(考点梳理)
- 2025福建福州文教职业中专学校招聘1人考前自测高频考点模拟试题及答案详解(新)
- 2025年福建省福州市罗源县招聘教师40人模拟试卷及一套完整答案详解
- 2025广西玉林市北流生态环境局招聘公益性岗位模拟试卷附答案详解(典型题)
- 2025广东惠州市博罗县罗浮山文化旅游投资集团有限公司所属企业管理岗位遴选拟聘用模拟试卷附答案详解(考试直接用)
- 2025年电力工程师高级职称评审要点与面试题库及答案
- 2025年湖南衡南县发展集团有限公司招聘12人备考考试题库附答案解析
- 2025年汽车驾驶员(高级)理论考试试题及答案
- 2025年及未来5年中国锂电池叠片机行业市场深度分析及发展趋势预测报告
- 应用流媒体服务拓展创新创业项目商业计划书
- 2025年幼儿园保健医考核试题及答案
- 乌兹别克语自学课件
- 《“盛世华诞”国庆主题》课件
- 四川省算云科技有限责任公司笔试历年参考题库附带答案详解
- 2025年江苏卫生健康职业学院单招《语文》检测卷
- 2025年高考语文全国一卷试题真题及答案详解(精校打印)
评论
0/150
提交评论