记事本源代码.doc_第1页
记事本源代码.doc_第2页
记事本源代码.doc_第3页
记事本源代码.doc_第4页
记事本源代码.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

/记事本源代码package jishiben;import java.awt.*;import javax.swing.*;import javax.swing.event.ListSelectionEvent;import javax.swing.event.ListSelectionListener;import java.awt.event.*;import java.io.*;import java.util.Calendar;import jishiben.FWindow.StyleDialog;public class FristWindow public static void main(String args) / TODO Auto-generated method stub new FWindow(记事本);class FWindow extends JFrame implements ActionListener,WindowListener,ItemListener public static Frame frame;JMenuBar menuBar;JPopupMenu menu;/用户在菜单栏上选择项时显示的菜单JMenu menu1,menu2,menu3,menu4,menu5;JMenuItem item1,item2,item3,item4,item5,item21,item22,item23,item24,item25,item26,item27,item31,item32,item41,item51,item52;JMenuItem itemCopy,itemCut,itemPaste;JTextArea text;/显示纯文本的多行区域JScrollPane scrollPane;JComboBox listFont,listFSize;int save_status=0,status=0,huanhang_count=0;FWindow(String s)/窗口的监听addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent event)/关闭窗口的事件if(save_status=0)/JOptionPane弹出要求用户提供值或向其发出通知的标准对话框/showConfirmDialog询问一个确认问题int check=JOptionPane.showConfirmDialog(null,文件的文字已经改变,想保存文件吗?,警告,JOptionPane.YES_NO_CANCEL_OPTION);if(check=0)saveFile(status);if (check=1) System.exit(0);if (check=2) dispose(););/位置setTitle(记事本);setSize(700,400);setLocation(120, 120);menuBar=new JMenuBar();setJMenuBar(menuBar);text=new JTextArea(30,40);text.setLineWrap(true);/滚动条scrollPane=new JScrollPane(text);/文本框的滚动条add(scrollPane);scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);menu=new JPopupMenu();menu1=new JMenu(文件);menu1.addActionListener(this);/监听文件菜单 menu2=new JMenu(编辑);menu3=new JMenu(格式);menu4=new JMenu(查看);menu5=new JMenu(帮助);menuBar.add(menu1);menuBar.add(menu2);menuBar.add(menu3);menuBar.add(menu4);menuBar.add(menu5);/文件菜单下菜单项的创建并监听item1=new JMenuItem(新建);item1.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubif (e.getSource()=item1) text.setText();this.setTitle(无标题 - 记事本);private void setTitle(String string)/ TODO Auto-generated method stub);/文件菜单下菜单项的打开并监听item2=new JMenuItem(打开);item2.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubif (e.getSource()=item2) File fl;JFileChooser jfc1=new JFileChooser(F:/);/选择打开文件的位置int num1=jfc1.showOpenDialog(null);if (num1=JFileChooser.APPROVE_OPTION) try fl=jfc1.getSelectedFile();this.setTitle(fl.getName();FileReader fr=new FileReader(fl);BufferedReader br=new BufferedReader(fr);String str;while(str=br.readLine()!=null)text.setText(str);fr.close();br.close(); catch (FileNotFoundException e1) / TODO: handle exceptione1.printStackTrace();catch (IOException e2) / TODO: handle exceptione2.printStackTrace();/p12方法private void setTitle(String name);/文件菜单下菜单项的保存并监听item3=new JMenuItem(保存);item3.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubif (e.getSource()=item3) File f2=null;JFileChooser jfc2=new JFileChooser();int num2=jfc2.showSaveDialog(null);if(num2=JFileChooser.APPROVE_OPTION)f2=jfc2.getSelectedFile();this.setTitle(f2.getName();try FileWriter fw=new FileWriter(f2);BufferedWriter bw=new BufferedWriter(fw);bw.write(text.getText();bw.close();fw.close(); catch (IOException e2) / TODO: handle exceptione2.printStackTrace();private void setTitle(String name);/另存为、退出/=另存为有问题=/item4=new JMenuItem(另存为.);item4.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stub/*if (e.getActionCommand().equals( 另存为) Frame f=new Frame( 保存);FileDialog fd=new FileDialog(f, 文件另存为,FileDialog.SAVE);fd.setVisible(true);try String savepath=fd.getDirectory();String savename=fd.getFile();if (savename!=null) PrintWriter pw=new PrintWriter(new BufferedWriter(new FileWriter(savepath+savename);pw.write(text.getText(),0,text.getText().length();pw.flush(); catch (Exception easve) / TODO: handle exception*/if (e.getSource()=item4) File f3=null;JFileChooser jfc3=new JFileChooser();int num3=jfc3.showSaveDialog(null);if(num3=JFileChooser.APPROVE_OPTION)f3=jfc3.getSelectedFile();this.setTitle(f3.getName();try FileWriter fw=new FileWriter(f3);BufferedWriter bw=new BufferedWriter(fw);bw.write(text.getText();bw.close();fw.close(); catch (IOException e2) / TODO: handle exceptione2.printStackTrace();private void setTitle(String name);item5=new JMenuItem(退出);/文件菜单下菜单项的退出并监听item5.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubif (e.getSource()=item5) int a=JOptionPane.showConfirmDialog(null,文件已被改变,是否保存?,提示,JOptionPane.YES_NO_CANCEL_OPTION);if (a=1) this.dispose();else if(a=0)File f2=null;JFileChooser jfc2=new JFileChooser();int num2=jfc2.showSaveDialog(null);if (num2=JFileChooser.APPROVE_OPTION) f2=jfc2.getSelectedFile();this.setTitle(f2.getName();try FileWriter fw=new FileWriter(f2);BufferedWriter bw=new BufferedWriter(fw);bw.write(text.getText();bw.close();fw.close(); catch (IOException e2) / TODO: handle exceptione2.printStackTrace();this.dispose();private void setTitle(String name)private void dispose();/KeyStroke 仅能对应于按下或释放某个特定的键/返回 KeyStroke 的实例,指定该键在按下或释放时是否视为已激活/CTRL_MASK Ctrl 键修饰符常量。item1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK);item2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK);item3.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK);menu1.add(item1);menu2.add(item2);menu1.add(item3); menu1.add(item4); menu1.add(item5); /编辑菜单下菜单项的创建 item21=new JMenuItem(撤销); item22=new JMenuItem(剪切); item23=new JMenuItem(复制); item24=new JMenuItem(粘贴); item25=new JMenuItem(删除); item26=new JMenuItem(全选); item27=new JMenuItem(时间/日期); /时间的监听 item27.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubif (e.getSource()=item27) Calendar cl=Calendar.getInstance();int y=cl.get(Calendar.YEAR);int m=cl.get(Calendar.MONTH);int d=cl.get(Calendar.DATE);int h=cl.get(Calendar.HOUR);int m1=cl.get(Calendar.MINUTE);int m2=m+1;text.setText(y+年+m2+月+d+日+h+:+m1);); item21.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,InputEvent.CTRL_MASK); item22.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK); item23.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK); item24.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK);/ item25.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_M,InputEvent.CTRL_MASK); item1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE,InputEvent.CTRL_MASK); item26.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK);/ item1.setAccelerator(new MenuShortcut(KeyEvent.VK_F5,InputEvent.CTRL_MASK); menu2.add(item21); menu2.add(item22); menu2.add(item23); menu2.add(item24); menu2.add(item25); menu2.add(item26); menu2.add(item27); item31=new JMenuItem( 自动换行); item32=new JMenuItem(字体); /字体监听 item32.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) / TODO Auto-generated method stubStyleDialog aa=new StyleDialog(text);); item31.setAccelerator(KeyStroke.getKeyStroke(W); item32.setAccelerator(KeyStroke.getKeyStroke(F); menu3.add(item31); menu3.add(item32); /自动换行的监听 item31.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stub if (item31.getLabel().equals( 自动换行) item31.setLabel( 自动换行);text.setLineWrap(true); else item31.setLabel( 自动换行); text.setLineWrap(false); ); /查看菜单下菜单项的创建 item41=new JMenuItem(状态栏); item41.setAccelerator(KeyStroke.getKeyStroke(S); menu4.add(item41); /帮助菜单下菜单项的创建 item51=new JMenuItem(查看帮助); item52=new JMenuItem(关于记事本); item52.setAccelerator(KeyStroke.getKeyStroke(A); menu5.add(item51); menu5.add(item52); item41.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubJOptionPane.showMessageDialog(null,可写,状态栏,JOptionPane.PLAIN_MESSAGE);); item51.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubJOptionPane.showConfirmDialog(null,Window的帮助与支持需要联机才支持,Window的帮助和支持,JOptionPane.PLAIN_MESSAGE);); item52.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubJOptionPane.showMessageDialog(null,版本6.1(内部版本7601:Server Pack 1)?);); /剪切功能 item21.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubtext.cut();); item22.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubtext.cut();); /复制功能 item23.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubtext.copy();); /粘贴功能 item24.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubtext.paste();); item25.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubtext.removeAll();); item26.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubtext.selectAll(););/*=剪切删除全选未实现=*/ /鼠标右键实现复制,粘贴,剪切功能 text.addMouseListener(new MouseAdapter() public void mousePressed(MouseEvent e) if (e.getModifiers()=InputEvent.BUTTON3_MASK)menu.show(text,e.getX(),e.getY(); ); /添加右键菜单 JMenuItem cut=new JMenuItem(剪切(T); JMenuItem copy=new JMenuItem(复制(C); JMenuItem paste=new JMenuItem(粘贴(P); JMenuItem removeAll=new JMenuItem(删除(D); JMenuItem selectAll=new JMenuItem(全选(A); menu.add(cut); menu.add(copy); menu.add(paste); menu.add(removeAll); menu.add(selectAll); /按钮事件剪切、复制、粘贴 cut.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubtext.cut();); copy.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubtext.copy();); paste.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubtext.paste();); removeAll.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubtext.removeAll();); selectAll.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubtext.selectAll();); setVisible(true);/protected void saveFile(int status2)/class StyleDialog extends JDialogJLabel ziti,zixing,daxiao;JPanel style,myshili;JTextArea shili;JButton ok,cancel;JList zitiList,zixingList,daxiaoList;JTextField myziti,myzixing,mydaxiao;String mystyle=宋体,华文行楷,黑体,华文彩云,华文仿宋,楷书_GB2312,隶书,华文中宋;String myxingzhuang=常规,斜体,粗体,粗斜体;String mypounds=9,10,11,12,13,14,15,16,17,18;String daxiao_check,style_check,ziti_check;StyleDialog(JTextArea text)super(frame,字体,false);this.setResizable(false);this.setBackground(Color.white);Container container=getContentPane();container.setLayout(null);ziti=new JLabel(字体);ziti.setFont(new Font(Monospaced,Font.PLAIN,12);ziti.setBounds(10,10,50,20);myziti=new JTextField(宋体);myziti.setEditable(false);/文本框不可修改myziti.setBackground(Color.white);/文本框内的颜色myziti.setBounds(10,35,100,20); zitiList=new JList(mystyle);zitiList.setSelectedIndex(3);zitiList.setFont(new Font(Monospaced,Font.PLAIN,12);zitiList.setVisibleRowCount(5);zitiList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);zitiList.addListSelectionListener(new ListSelectionListener() Overridepublic void valueChanged(ListSelectionEvent event) / TODO Auto-generated method stubmyziti.setText(mystylezitiList.getSelectedIndex();ziti_check=myziti.getText();style_check=myzixing.getText();daxiao_check=mydaxiao.getText();int zitidaxiao=Integer.parseInt(daxiao_check);int zitistyle=Font.PLAIN; if (style_check.equals(常规) zitistyle=Font.PLAIN;if (style_check.equals(斜体) zitistyle=Font.ITALIC;if (style_check.equals(粗体) zitistyle=Font.BOLD;if (style_check.equals(粗斜体) zitistyle=Font.BOLD+Font.ITALIC;/shili.setFont(new Font(ziti_check,zitistyle,zitidaxiao););JScrollPane scroll=new JScrollPane(zitiList);scroll.setBounds(10,60,100,100);/*=字形=*/zixing=new JLabel(字形);zixing.setFont(new Font(Monospaced,Font.PLAIN,12);zixing.setBounds(120,10,50,20);myzixing=new JTextField(常规);myzixing.setEditable(false);myzixing.setBackground(Color.white);myzixing.setBounds(120, 35, 100, 20);zixingList=new JList(myxingzhuang);zixingList.setSelectedIndex(0);zixingList.setFont(new Font(Monospaced,Font.PLAIN,12);zixingList.setVisibleRowCount(5);zixingList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);zixingList.addListSelectionListener(new ListSelectionListener() Overridepublic void valueChanged(ListSelectionEvent event) / TODO Auto-generated method stubmyzixing.setText(myxingzhuangzixingList.getSelectedIndex();ziti_check=myziti.getText();style_check=myzixing.getText();daxiao_check=mydaxiao.getText();int zitidaxiao=Integer.parseInt(daxiao_check);int zitistyle=Font.PLAIN;if (style_check.equals(常规) zitistyle=Font.PLAIN;if (style_check.equals(斜体) zitistyle=Font.ITALIC;if (style_check.equals(粗体) zitistyle=Font.BOLD;if (style_check.equals(粗斜体) zitistyle=Font.BOLD+Font.ITALIC;/shili.setFont(new Font(ziti_check,zitistyle,zitidaxiao););JScrollPane scroll2=new JScrollPane(zixin

温馨提示

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

评论

0/150

提交评论