Java简单完整记事本_第1页
Java简单完整记事本_第2页
Java简单完整记事本_第3页
Java简单完整记事本_第4页
Java简单完整记事本_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、package ks;import java.awt.Font;import java.awt.GraphicsEnvironment;import java.awt.List;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.InputEvent;import java.awt.event.ItemEvent;import java.awt.event.ItemListener;import java.awt.event.KeyEvent;import ja

2、va.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.awt.event.WindowListener;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.util.Calendar;import javax.swing.JButton;import javax.swing.JCheckBox;import javax.swing.JCheckBoxMenuItem;

3、import javax.swing.JDialog;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.KeyStroke;import javax.

4、swing.event.ChangeEvent;import javax.swing.event.ChangeListener;public class MyNotepad extends JFrame private static final long serialVersionUID = 1L;private boolean flag = true;private File f;private JTextArea jta = new JTextArea();private JFrame frame = new JFrame(无标题记事本);private String result = ;

5、private String value;public MyNotepad() / 菜单栏的构造JMenuBar jmb = new JMenuBar();JMenu menu1 = new JMenu(文件(F);jmb.add(menu1);JMenu menu2 = new JMenu(编辑(E);jmb.add(menu2);JMenu menu3 = new JMenu(格式(O);jmb.add(menu3);JMenu menu4 = new JMenu(查看(V);jmb.add(menu4);JMenu menu5 = new JMenu(帮助(H);jmb.add(menu

6、5);/ 文件选项的下拉菜单JMenuItem fItem = new JMenuItem(新建(N);fItem.setAccelerator(KeyStroke.getKeyStroke(N, InputEvent.CTRL_MASK);/为新建添加快捷键/为新建添加监听fItem.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) String comm = e.getActionCommand();if (新建(N).equals(comm) if (!(frame.getT

7、itle().equals(无标题记事本) if (!flag) write();newNew(); else JFileChooser jfc = new JFileChooser(C:);/ 文件选择器int returnVal = jfc.showDialog(null, 保存为);if (returnVal = JFileChooser.APPROVE_OPTION) / 选择文件后再执行下面的语句,保证了程序的健壮性f = jfc.getSelectedFile();flag = false;write(); else if (!(jta.getText().isEmpty() JF

8、ileChooser jfc = new JFileChooser(C:);/ 文件选择器int returnVal = jfc.showDialog(null, 保存为);if (returnVal = JFileChooser.APPROVE_OPTION) / 选择文件后再执行下面的语句,保证了程序的健壮性f = jfc.getSelectedFile();flag = false;write();newNew(); else newNew(););menu1.add(fItem);JMenuItem fItem1 = new JMenuItem(打开(O).);fItem1.setAc

9、celerator(KeyStroke.getKeyStroke(O,InputEvent.CTRL_MASK);/为打开添加快捷键/为打开添加监听fItem1.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) JFileChooser jfc = new JFileChooser(D:);/ 文件选择器jfc.setDialogType(JFileChooser.OPEN_DIALOG);int returnVal = jfc.showOpenDialog(null);if (r

10、eturnVal = JFileChooser.APPROVE_OPTION) / 选择文件后再执行下面的语句,保证了程序的健壮性f = jfc.getSelectedFile();frame.setTitle(f.getName();result = read();flag = false;value = result;jta.setText(result););menu1.add(fItem1);JMenuItem fItem2 = new JMenuItem(保存(S);fItem2.setAccelerator(KeyStroke.getKeyStroke(S,InputEvent.C

11、TRL_MASK);/为保存添加快捷键/为保存添加监听fItem2.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) JFileChooser jfc = new JFileChooser(C:);/ 文件选择器if (flag) int returnVal = jfc.showDialog(null, 保存为);if (returnVal = JFileChooser.APPROVE_OPTION) / 选择文件后再执行下面的语句,保证了程序的健壮性f = jfc.getSele

12、ctedFile();flag = false;write(); else write(););menu1.add(fItem2);JMenuItem fItem3 = new JMenuItem(另存为(A).);/为另存为添加监听fItem3.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) JFileChooser jfc = new JFileChooser(C:);/ 文件选择器int returnVal = jfc.showDialog(null, 另存);if (re

13、turnVal = JFileChooser.APPROVE_OPTION) / 选择文件后再执行下面的语句,保证了程序的健壮性f = jfc.getSelectedFile();write(););menu1.add(fItem3);menu1.addSeparator(); /添加分割线JMenuItem fItem4 = new JMenuItem(退出(X);/为退出添加监听fItem4.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) Object options=退出,

14、返回;int option=JOptionPane.showOptionDialog(null,您确定要退出吗?请注意保存文件!,退出程序?,JOptionPane.OK_CANCEL_OPTION,JOptionPane.WARNING_MESSAGE,null,options,options0);if(option=JOptionPane.OK_OPTION)System.exit(0););menu1.add(fItem4);/ 编辑选项的下拉菜单JMenuItem eItem = new JMenuItem(撤销(U);eItem.setAccelerator(KeyStroke.ge

15、tKeyStroke(Z, InputEvent.CTRL_MASK);/添加快捷键/添加监听eItem.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) String comm = e.getActionCommand();if (撤销(U).equals(comm) jta.setText(value););menu2.add(eItem);menu2.addSeparator(); /添加分割线JMenuItem eItem1 = new JMenuItem(剪切(T);eI

16、tem1.setAccelerator(KeyStroke.getKeyStroke(X,InputEvent.CTRL_MASK);/添加快捷键/添加监听eItem1.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) String comm = e.getActionCommand();if (剪切(T).equals(comm) value = jta.getText();jta.cut(););menu2.add(eItem1);JMenuItem eItem2 = new

17、JMenuItem(复制(C);eItem2.setAccelerator(KeyStroke.getKeyStroke(C,InputEvent.CTRL_MASK);/添加快捷键/添加监听eItem2.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) String comm = e.getActionCommand();if (复制(C).equals(comm) jta.copy(););menu2.add(eItem2);JMenuItem eItem3 = new JMe

18、nuItem(粘贴(P);eItem3.setAccelerator(KeyStroke.getKeyStroke(V,InputEvent.CTRL_MASK);/添加快捷键/添加监听eItem3.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) String comm = e.getActionCommand();if (粘贴(P).equals(comm) jta.paste(););menu2.add(eItem3);JMenuItem eItem4 = new JMenu

19、Item(删除(L);eItem4.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE,InputEvent.BUTTON1_MASK);/添加快捷键/添加监听eItem4.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) String comm = e.getActionCommand(); if (删除(L).equals(comm) value = jta.getText();jta.replaceSelectio

20、n(null); );menu2.add(eItem4);menu2.addSeparator(); /添加分割线JMenuItem eItem5= new JMenuItem(查找(F).);eItem5.setAccelerator(KeyStroke.getKeyStroke(F,InputEvent.CTRL_MASK);/添加快捷键menu2.add(eItem5);JMenuItem eItem6 = new JMenuItem(替换(R).);eItem6.setAccelerator(KeyStroke.getKeyStroke(H,InputEvent.CTRL_MASK);

21、/添加快捷键menu2.add(eItem6);menu2.addSeparator(); /添加分割线JMenuItem eItem7 = new JMenuItem(全选(A);eItem7.setAccelerator(KeyStroke.getKeyStroke(A,InputEvent.CTRL_MASK);/添加快捷键/添加快捷键eItem7.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) String comm = e.getActionCommand();if (

22、全选(A).equals(comm) jta.selectAll(););menu2.add(eItem7);JMenuItem eItem8 = new JMenuItem(时间/日期(D);eItem8.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F5,InputEvent.BUTTON1_MASK);/添加快捷键/添加监听eItem8.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) String comm = e.ge

23、tActionCommand();if (时间/日期(D).equals(comm) Calendar c = Calendar.getInstance();jta.setText(c.get(Calendar.YEAR) + 年+ (c.get(Calendar.MONTH) + 1) + 月+ c.get(Calendar.DAY_OF_MONTH) + 日+ c.get(Calendar.HOUR_OF_DAY) + :+ c.get(Calendar.MINUTE) + :+ c.get(Calendar.SECOND););menu2.add(eItem8);/ 格式选项的下拉菜单f

24、inal JCheckBoxMenuItem oItem = new JCheckBoxMenuItem(自动换行(W);ActionListener listener = null;oItem.addActionListener(listener);oItem.addChangeListener(new ChangeListener() public void stateChanged(ChangeEvent e) if(oItem.isSelected()jta.setLineWrap(true);elsejta.setLineWrap(false););menu3.add(oItem);

25、JMenuItem oItem1= new JMenuItem(字体(F).);oItem1.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) String comm = e.getActionCommand();if(字体(F).equals(comm)FontDialog fontDialog=new FontDialog(MyNotepad.this);fontDialog.setVisible(true);if(jta.getFont()!=fontDialog.getFo

26、nt()jta.setFont(fontDialog.getFont(););menu3.add(oItem1);/ 查看选项的下拉菜单的复选框JCheckBox vItem = new JCheckBox(状态栏(S);menu4.add(vItem);/ 帮助选项的下拉菜单JMenuItem hItem = new JMenuItem(关于记事本(A);hItem.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e) JOptionPane.showMessageDialog(nul

27、l,此记事本为个人记事本n+作者:黄定银n+时间:2013年1月15日, 关于记事本,JOptionPane.INFORMATION_MESSAGE););menu5.add(hItem);frame.setJMenuBar(jmb);JScrollPane jsp = new JScrollPane(jta);/ 滚动窗口面板frame.add(jsp);frame.setLocation(200, 50);frame.setSize(620, 660);frame.setVisible(true);frame.addWindowListener(new WindowAdapter()pub

28、lic void windowClosing(WindowEvent e) int option=JOptionPane.showConfirmDialog(null,你确定关闭吗?,关闭提示,JOptionPane.OK_CANCEL_OPTION,JOptionPane.WARNING_MESSAGE);if (option=JOptionPane.OK_OPTION) System.exit(0); else return;);frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); /read方法public String

29、read() String temp = ;try FileInputStream fis = new FileInputStream(f.getAbsolutePath();byte b = new byte1024;while (true) int num = fis.read(b);if (num = -1)break;temp = temp + new String(b, 0, num);fis.close(); catch (Exception e1) e1.printStackTrace();return temp;/write方法public void write() try F

30、ileOutputStream fos = new FileOutputStream(f);fos.write(jta.getText().getBytes();fos.close(); catch (Exception e) e.printStackTrace();/newNew方法public void newNew() frame.dispose();new MyNotepad();flag = true;/创建字体设置对话面板public class FontDialog extends JDialog implements ItemListener,ActionListener, W

31、indowListenerprivate static final long serialVersionUID = 1L;public JCheckBox Bold=new JCheckBox(Bold,false);public JCheckBox Italic=new JCheckBox(Italic,false); public List Size,Name; public int FontName; public int FontStyle; public int FontSize; public JButton OK=new JButton(OK); public JButton C

32、ancel=new JButton(Cancel); public JTextArea Text=new JTextArea(字体预览文本域nnAaBbCcXxYyZz); public FontDialog(JFrame owner) super(owner, 字体设置,true); GraphicsEnvironment g=GraphicsEnvironment.getLocalGraphicsEnvironment(); String name=g.getAvailableFontFamilyNames(); Name=new List(); Size=new List(); Font

33、Name=0; FontStyle=0; FontSize=8; int i=0; Name.add(Default Value); for(i=0;iname.length;i+) Name.add(namei); for(i=8;i257;i+) Size.add(String.valueOf(i); this.setLayout(null); this.setBounds(250,200,480, 306); this.setResizable(false); OK.setFocusable(false); Cancel.setFocusable(false); Bold.setFocu

34、sable(false); Italic.setFocusable(false); Name.setFocusable(false); Size.setFocusable(false); Name.setBounds(10, 10, 212, 259); this.add(Name); Bold.setBounds(314, 10, 64, 22); this.add(Bold); Italic.setBounds(388, 10, 64, 22); this.add(Italic); Size.setBounds(232, 10, 64, 259); this.add(Size); Text

35、.setBounds(306, 40, 157, 157); this.add(Text); OK.setBounds(306, 243, 74, 26); this.add(OK); Cancel.setBounds(390, 243, 74, 26); this.add(Cancel); Name.select(FontName); Size.select(FontSize); Text.setFont(getFont(); Name.addItemListener(this); Size.addItemListener(this); Bold.addItemListener(this); Italic.addItemListener(this); OK.addActionListener(this); Cancel.addActionListener(this); this.addWindowListener(this); public void itemStateChanged(ItemEvent e) Text.setFont(getFont(); public void actionPerfo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论