java-记事本代码

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;


class mynotepad extends JFrame
{
    File file=null;
    // Color color=Color.red;
    mynotepad()
    {
    initTextContent();
    initMenu();
    initAboutDialog();
    }
   
    void initTextContent()
    {
    getContentPane().add(new JScrollPane(content)); 


    }
    
    JTextPane content=new JTextPane(); 
    JFileChooser openfile=new JFileChooser();
    JColorChooser opencolor=new JColorChooser();
    JDialog about=new JDialog(this);
    JMenuBar menu=new JMenuBar();
    //菜单栏的各个菜单项
JMenu[] menus=new JMenu[]{new JMenu("文件"),new JMenu("编辑"),new JMenu("关于")};
    
    //"文件"菜单项的四个下拉菜单
    //编辑菜单的四个下拉菜单
    
JMenuItem optionofmenu[][]=new JMenuItem[][]{{new JMenuItem("新建"),new JMenuItem("打开"),new JMenuItem("保存"),new JMenuItem("退出")},
                          {new JMenuItem("复制"),new JMenuItem("剪切"),new JMenuItem("粘贴"),new JMenuItem("颜色")},
        {new JMenuItem("关于")}
    };
    void initMenu()
    {
      for(int i=0;i<menus.length;i++)
      {
        menu.add(menus[i]);
        for(int j=0;j<optionofmenu[i].length;j++)
        {
        menus[i].add(optionofmenu[i][j]);
        optionofmenu[i][j].addActionListener( action );
        }
      }
      this.setJMenuBar(menu);
    } 
    
    ActionListener action=new ActionListener()
    {                   //添加事件监听
    public void actionPerformed(ActionEvent e)
    {
      String name = e.getActionCommand();
JMenuItem MI=(JMenuItem)e.getSource();
if("新建".equals(name))
{
content.setText("");
file=null;
}
else if("打开".equals(name))
{
            if(file !=null)
            openfile.setSelectedFile(file);
                int returnVal=openfile.showOpenDialog(mynotepad.this);
                if(returnVal==JFileChooser.APPROVE_OPTION)
                {
file=openfile.getSelectedFile();
                    unfold();
                }


    }
    else if("保存".equals(name))
    {
      if(file!=null) openfile.setSelectedFile(file);
          int returnVal=openfile.showSaveDialog(mynotepad.this);
                if(returnVal==JFileChooser.APPROVE_OPTION)
                {
                file=openfile.getSelectedFile();
                  saving();
                }
           
            }
            else if("退出".equals(name))
            {
            mynotepad f=new mynotepad();
            int s=JOptionPane.showConfirmDialog(f,"退出?","退出",JOptionPane.YES_NO_OPTION);
                if(s==JOptionPane.YES_OPTION)
                System.exit(0);
            }
            else if("剪切".equals(name))
            {
            content.cut();
            }
            else if("复制".equals(name))
            { 
            content.copy();
            }
            else if("粘贴".equals(name))
            {
            content.paste();
            }
            else if("颜色".equals(name))
            { 
                //color=JColorChooser.showDialog(mynotepad.this,"",color);
                // content.setForeground(color);
                 
    }
    else if("关于".equals(name))
    {
              about.setSize(300,150);
              about.show();
      }
    
   
  }; 
 
  void saving()
  {
    try
    {
        FileWriter Writef=new FileWriter(file);
        Writef.write(content.getText());
        Writef.close();
        }
    catch(Exception e)
    {
    e.printStackTrace();
    }


    }                
 
  void unfold()
  {
    try
    {
        FileReader Readf=new FileReader(file);
          int len=(int)file.length();
            char []buffer=new char[len];
          Readf.read(buffer,0,len);
            Readf.close();
            content.setText(new String(buffer));
        }
        catch(Exception e)
        {
        e.printStackTrace();
        }
}
  
  void initAboutDialog()
  {
      about.setLayout(new GridLayout(3,1));
        //about.getContentPane().setBackground(Color.white);
      about.getContentPane().add(new JLabel("我的记事本程序"));//对话框内容
      about.getContentPane().add(new JLabel("制作者:Fwx"));
      about.getContentPane().add(new JLabel("2007年12月"));
      about.setModal(true);                        //设置对话框前端显示
      about.setSize(100,100);                        
      about.setLocation(250,170);                  //设置对话框显示位置
    };
}   


public class Notepad
{
public static void main(String args[])
{                          //入口main函数
mynotepad noted=new mynotepad();
        noted.addWindowListener(new WindowAdapter()
        {
        
        });
        noted.setTitle("我的记事本程序");           //记事本标题
noted.setSize(640,320);                  //设置记事本大小
noted.show();                         
noted.setLocation(150,100);              //设置记事本显示位置
}

}


java写windows记事本代码,具体功能如下: 1.文件(F) 可以通过点击菜单或快捷键(alt + F)打开菜单页 1.1新建(N) 菜单内点击或助记符N或快捷键(ctrl + N) 点击后弹出对话框,询问是否保存到***.txt? 点击保存(S):保存文本并关闭,再新建新的文本 点击不保存(N):不保存文本并关闭,再新建新的文本 点击取消:取消新建操作 1.2打开(O) 菜单内点击或助记符O或快捷键(ctrl + O) 点击后弹出对话框,询问是否保存到***.txt? 点击保存(S):保存文本,弹出选择文件对话框 点击不保存(N):不保存文本,弹出选择文件对话框 ==》选择文件对话框: 选择打开(O):就打开新的文本 选择取消:取消打开操作,返回原文本 点击取消:取消打开操作 1.3保存(S) 菜单内点击或助记符S或快捷键(ctrl + S) 点击后保存文本内容 1.4另存为(A) 菜单内点击或助记符A 点击后打开另存为对话框,选择路径和设置文件名 选择保存(S):就会在该路径保存文本,原文本内容不会保存并关闭,打开另存的文本 取消:取消另存为操作,返回原文本 1.5页面设置(U)(只实现页面边距,其他未实现) 菜单内点击或助记符U 点击后打开页面设置对话框:可以设置一下内容 纸张:大小(Z)、来源(S) 方向:纵向(O)、横向(A) 页面边距(毫米):左(L)右(R)上(T)下(B) 页眉(H)、页脚(F)、预览:(图片) 选择确定:保存新的页面设置 选择取消:取消页面设置 1.6打印(P)(改功能未完全实现,使用可能会报错) 菜单内点击或助记符P或快捷键(ctrl + P) 点击后弹出打印对话框 1.7退出(X) 菜单内点击或助记符X 点击后退出本文本文件 2.编辑(E) 可以通过点击菜单或快捷键(alt + E)打开菜单页 2.1撤销(U) 菜单内点击或助记符U或快捷键(ctrl + Z) 响应后返回上一步操作 2.2剪切(T) 菜单内点击或助记符T或快捷键(ctrl + X) 响应后光标选中的内容提取到剪贴板,并删除该内容,光标定位在元初识位置 2.3复制(C) 菜单内点击或助记符C或快捷键(ctrl + C) 响应后光标选中内容提取到剪贴板,光标位置保持不变 2.4粘贴(P) 菜单内点击或助记符P或快捷键(ctrl + V) 响应后光标选中的内容被替换为剪贴板的内容,光标选中刚刚粘贴的内容 2.5删除(L) 菜单内点击或助记符L或快捷键(DEL) 响应后删除光标选中的内容 2.6查找(F) 菜单内点击或助记符F或快捷键(ctrl + F) 响应后弹出查找对话框:输入查找的内容,可以选择区分大小写和选择查找的方向 点击查找之后光标会选中响应的查找内容,没找到会弹出找不到对话框 2.7查找下一个(N) 菜单内点击或助记符N或快捷键(F3) 查找框有内容就直接查找贯标位置以后的内容,查找框没有内容直接弹出查找框 2.8替换(R) 菜单内点击或助记符R或快捷键(ctrl + H) 弹出替换对话框,有全部替换和替换当前两种 当前替换:替换光标选中的内容,光标移动到下一个查找内容上 2.9转到(G) 菜单内点击或助记符G或快捷键(ctrl + G) 在自动换行未选中的情况下,点击之后弹出转到指定行对话框 2.10全选(A) 菜单内点击或助记符A或快捷键(ctrl + A) 响应后选中全部文本内容 2.11时间/日期(D) 菜单内点击或助记符D或快捷键(F5) 在光标选中的内容里修改为当前时间 3.格式(O) 可以通过点击菜单或快捷键(alt + O)打开菜单页 3.1自动换行(W) 菜单内点击或助记符W 选中后,文本会自动换行,且不能点击查看状态栏和转到菜单 3.2字体(F) 菜单内点击或助记符F 弹出字体对话框:可以选择字体(F)、字形(Y)大小(S) 拥有示例和选择脚本,确定后更改全部字体 4.查看(V) 可以通过点击菜单或快捷键(alt + V)打开菜单页 4.1状态栏(S) 菜单内点击或助记符S 在底部会显示光标的起始坐标,第几行第几列 5.帮助(H) 可以通过点击菜单或快捷键(alt + H)打开菜单页 5.1查看帮助(H) 菜单内点击或助记符H 点击弹出帮助文本 5.2关于记事本(A)、 菜单内点击或助记符A 点击弹出关于记事本的对话框 显示它的版本信息
Java小型记事本代码的实现可以基于Swing组件库,以下是一个简单的Java小型记事本代码示例: ``` import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.io.*; public class JavaNotepad extends JFrame implements ActionListener { JTextArea area = new JTextArea(20,120); JMenuBar mb = new JMenuBar(); JMenu file = new JMenu("文件"); JMenuItem open = new JMenuItem("打开"); JMenuItem save = new JMenuItem("保存"); JMenuItem exit = new JMenuItem("退出"); public JavaNotepad() { JScrollPane scroll = new JScrollPane(area); area.setFont(new Font("宋体",Font.BOLD,20)); add(scroll,BorderLayout.CENTER); setJMenuBar(mb); mb.add(file); file.add(open); file.add(save); file.add(exit); open.addActionListener(this); save.addActionListener(this); exit.addActionListener(this); } public void actionPerformed(ActionEvent e) { if (e.getSource() == open) openFile(); else if (e.getSource() == save) saveFile(); else if (e.getSource() == exit) System.exit(0); } public void openFile() { JFileChooser chooser = new JFileChooser(); int option = chooser.showOpenDialog(this); if (option == JFileChooser.APPROVE_OPTION) { area.setText(""); try { Scanner scan = new Scanner(new FileReader(chooser.getSelectedFile().getPath())); while (scan.hasNext()) area.append(scan.nextLine() + "\n"); } catch (Exception ex) { System.out.println(ex.getMessage()); } } } public void saveFile() { JFileChooser chooser = new JFileChooser(); int option = chooser.showSaveDialog(this); if (option == JFileChooser.APPROVE_OPTION) { try { BufferedWriter out = new BufferedWriter(new FileWriter(chooser.getSelectedFile().getPath())); out.write(area.getText()); out.close(); } catch (Exception ex) { System.out.println(ex.getMessage()); } } } public static void main(String[] args) { JavaNotepad editor = new JavaNotepad(); editor.setDefaultCloseOperation(EXIT_ON_CLOSE); editor.pack(); editor.setVisible(true); editor.setLocationRelativeTo(null); } } ``` 该记事本可以打开、保存、退出文件,功能简单,适合初学者学习。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值