`
韬光养晦
  • 浏览: 70800 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

Java语言编写记事本(代码)

阅读更多
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.undo.*;
import java.io.*;
public class Note extends JFrame
{UndoManager manager=new UndoManager();
 JTextArea text = new JTextArea();
 JFileChooser chooser;
 String s="新建记事本";
 File file;
 JMenuBar Mb;
 JMenu M1,M2,M3,M4;
 JMenuItem m11,m12,m13,m14,m15,m21,m22,m23,m24,m25,m32,m33,m41;
 JCheckBoxMenuItem m31=new JCheckBoxMenuItem("自动换行",true);
  /**文件格式过滤器**/
  private   class filter extends javax.swing.filechooser.FileFilter
  {public boolean accept(File file)
	 {String name=file.getName();
      name.toLowerCase();
      if(name.endsWith(".txt")||file.isDirectory())
		  return true;
	  else return false;
     }
   public String getDescription()
	  {return ".txt";
      }
  }
   /**将菜单项JMenuItem添加到菜单JMenu**/
 public JMenuItem AddItem(String name,JMenu menu)
  {JMenuItem MI=new JMenuItem(name);
   menu.add(MI);
   return MI;
  }
  /**将菜单JMenu添加到菜栏JMenuBar**/
 public JMenu AddBar(String name,JMenuBar mb)
  {JMenu Mb=new JMenu(name);
   mb.add(Mb);
   return Mb;
  }

 Note()
  {setTitle(s);
   setBounds(200,200,500,500);
   Mb=new JMenuBar();
   this.setJMenuBar(Mb);
   text.getDocument().addUndoableEditListener(manager);
   text.setFont(new Font("宋体",Font.PLAIN,14));
   text.setCaretColor(Color.RED);//光标颜色
   text.setSelectedTextColor(Color.RED);//选中字体颜色
   text.setSelectionColor(Color.GREEN);//选中背景颜色
   text.setLineWrap(true); //是否换行
   text.setWrapStyleWord(true);  //是否单词边界换行(即有空白)
   text.setMargin(new Insets(3, 5, 3, 5));//文本区与边框的间距,四个参数分别为上、左、下、右
   text.setDragEnabled(true); //开启或关闭自动拖动处理
   add(new JScrollPane(text,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED));

   M1=this.AddBar("文件",Mb);
   M2=this.AddBar("编辑",Mb);
   M3=this.AddBar("格式",Mb);
   M4=this.AddBar("帮助",Mb);
     /*新建选项*/
   m11=this.AddItem("新建",M1);
   m11.addActionListener(new ActionListener(){
   public void actionPerformed(ActionEvent event)
	   {text.setText("");
       }
   });
     /*打开选项*/
   m12=this.AddItem("打开",M1);
   m12.addActionListener(new ActionListener(){
   public void actionPerformed(ActionEvent event)
	 {try{chooser=new JFileChooser();
      chooser.setCurrentDirectory(new File("."));
      chooser.setFileFilter(new filter());
      chooser.showOpenDialog(null);
	  file=chooser.getSelectedFile();
	  s=file.getName();
	  setTitle(s);
	  int length=(int)file.length();
	  FileReader fr=new FileReader(file);
      char[] ch=new char[length];
	  fr.read(ch);
	  s=new String(ch);
      text.setText(s.trim());}
	  catch(Exception e){JOptionPane.showMessageDialog(null,e);}
     }
   });
      /*保存选项*/
   m13=this.AddItem("保存",M1);
   m13.addActionListener(new ActionListener(){
   public void actionPerformed(ActionEvent event)
	 { if(file==null)try{
	   chooser=new JFileChooser();
	   chooser.setCurrentDirectory(new File("."));
       s=JOptionPane.showInputDialog("请输入文件名:")+".txt";
       chooser.setSelectedFile(new File(s));
	   chooser.setFileFilter(new filter());
	   int yn=chooser.showSaveDialog(null);
	   if(yn==chooser.APPROVE_OPTION)
	   {   file=new File(chooser.getCurrentDirectory(),s);
		   file.createNewFile();
		   FileWriter fw=new FileWriter(file);
	       fw.write(text.getText());
	       fw.close();
       }
      }
	  catch(Exception e){JOptionPane.showMessageDialog(null,e);}
	  else try{
	  FileWriter fw=new FileWriter(file);
	  fw.write(text.getText());
	  fw.close();
	  }
	  catch(Exception e){JOptionPane.showMessageDialog(null,e);}
     }
   });
      /*另存为选项*/
   m14=this.AddItem("另存为",M1);
   m14.addActionListener(new ActionListener(){
   public void actionPerformed(ActionEvent event)
	   {chooser=new JFileChooser();
        chooser.setCurrentDirectory(new File("."));
	   try{
       if(file==null) s=JOptionPane.showInputDialog("请输入文件名:")+".txt";
       else s=file.getName();
	   chooser.setSelectedFile(new File(s));
	   chooser.setFileFilter(new filter());
	   int yn=chooser.showSaveDialog(null);
	   if(yn==chooser.APPROVE_OPTION)
	   {   if(file!=null) file.delete();
		   file=new File(chooser.getCurrentDirectory(),s);
		   file.createNewFile();
		   FileWriter fw=new FileWriter(file);
	       fw.write(text.getText());
	       fw.close();
       }
		}
	  catch(Exception e){JOptionPane.showMessageDialog(null,e);}
       }
   });
     
   M1.addSeparator(); //横杆
     /*退出选项*/
   m15=this.AddItem("退出",M1);
   m15.addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent event) {
    System.exit(0);
   }
  });
     /*撤消选项*/
  m21=this.AddItem("撤消",M2);
  m21.addActionListener(new ActionListener(){
  public void actionPerformed(ActionEvent event)
	 {if(manager.canUndo())
	     manager.undo();
     }
  });
     /*剪切选项*/
  M2.addSeparator();
  m22=this.AddItem("剪切",M2);
  m22.addActionListener(new ActionListener(){
  public void actionPerformed(ActionEvent event)
	 {text.cut();
     }
  });
    /*复制选项*/
  m23=this.AddItem("复制",M2);
  m23.addActionListener(new ActionListener(){
	public void actionPerformed(ActionEvent event)
	{text.copy();
	}
  });
    /*粘贴选项*/
  m24=this.AddItem("粘贴",M2);
  m24.addActionListener(new ActionListener(){
	public void actionPerformed(ActionEvent event)
	{	text.paste();
	}
  });
    /*删除选项*/
  m25=this.AddItem("删除",M2);
  m25.addActionListener(new ActionListener(){
  public void actionPerformed(ActionEvent event)
	 {text.replaceRange("",text.getSelectionStart(),text.getSelectionEnd());
     }
  });
    /*自动换行选项*/
  M3.add(m31);
  m31.addActionListener(new ActionListener(){
  public void actionPerformed(ActionEvent event)
	{if(m31.getState())
	  text.setLineWrap(true);
     else text.setLineWrap(false);
    }
  });
    /*字体格式设置选项*/
  m32=this.AddItem("字体选择",M3);
  m32.addActionListener(new ActionListener(){
  public void actionPerformed(ActionEvent event)
	{ GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
  JList fontNames = new JList(ge.getAvailableFontFamilyNames());
  int response = JOptionPane.showConfirmDialog(null, new JScrollPane(fontNames),"请选择字体",JOptionPane.OK_CANCEL_OPTION);
  Object selectedFont = fontNames.getSelectedValue();
    if (response == JOptionPane.OK_OPTION && selectedFont != null)
      text.setFont(new Font(fontNames.getSelectedValue().toString(),Font.PLAIN,20));
    }
  });
    /*字体颜色设置选项*/
  m33=this.AddItem("字体颜色",M3);
  m33.addActionListener(
    new ActionListener(){
     public void actionPerformed(ActionEvent event){
      Color color = JColorChooser.showDialog(null, "文字颜色选择", Color.WHITE);
      text.setForeground(color);
     }
    }
    );

  m41=this.AddItem("关于记事本",M4);
  m41.addActionListener(new ActionListener(){
  public void actionPerformed(ActionEvent event)
	{JOptionPane.showMessageDialog(null,"记事本\n开发语言:JAVA\n开发者:林岗则","关于",JOptionPane.PLAIN_MESSAGE);
    }
  });
   setResizable(true); //窗体是否可变
   setVisible(true);   //窗体是否可见
   setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }

 public static void main(String args[])
  {Note n=new Note();
  }
}
分享到:
评论

相关推荐

    java 编写的记事本 源代码

    Java 编写的记事本源代码是一个典型的桌面应用程序开发实例,它展示了如何使用Java语言来构建一个具有基本文本编辑功能的程序。这个程序是通过MyEclipse集成开发环境(IDE)编写的,MyEclipse是Java开发者常用的工具...

    java实现简单的记事本程序(内含源代码)

    在本文中,我们将深入探讨如何使用Java编程语言实现一个简单的记事本程序。这个程序能够提供基本的文字编辑功能,如创建、保存、打开和编辑文本文件。以下是对这个项目的关键知识点的详细阐述: 1. **Java基础知识*...

    java记事本 源代码

    【标题】"java记事本 源代码"所涉及的知识点主要集中在Java编程语言、图形用户界面(GUI)设计以及文件操作上。这个项目利用Java的Swing库来构建一个类似于Windows记事本的应用程序,它实现了文本编辑的基础功能。 ...

    目前网上最详细的java编写的记事本程序

    考虑到标签是“记事本代码”,我们可以推断出压缩包中的“记事本”文件很可能是这个Java记事本程序的源代码。对于学习Java编程或想要了解如何构建文本编辑器的人来说,这份源代码是一个宝贵的资源。源代码通常包含类...

    java实现简单的记事本程序

    在Java编程语言中,创建一个简单的记事本程序是一个经典的练习,它可以帮助初学者更好地理解GUI(图形用户界面)编程和事件处理。这个程序通常包括打开、保存、编辑和关闭文本文件的功能。以下是对实现这样一个程序...

    Java语言编写记事本功能不全

    这个"Java语言编写记事本功能不全"的问题可能反映了在实现某些关键功能时遇到了困难或遗漏。以下是一些核心的Java技术和功能,它们通常用于构建一个基础的文本编辑器应用: 1. **Swing或JavaFX**: Java中的图形用户...

    java编写记事本.zip

    1. **Java编程基础**:项目基于Java语言编写,这涉及到Java的基础语法、类与对象、异常处理、输入输出流等核心概念。开发者需要对Java SE(标准版)有深入理解,以便创建可运行的桌面应用程序。 2. **Swing或JavaFX...

    记事本(java语言编写)

    《Java语言实现的记事本程序详解》 Java语言,作为一种多平台支持的高级编程语言,因其面向对象、跨平台的特性,在软件开发领域广泛应用。本文将深入探讨一个基于Java编写的记事本程序,该程序具备了Windows系统...

    JAVA编写的记事本程序

    【标题】:“JAVA编写的记事本程序” 在IT领域,Java是一种广泛应用的高级编程语言,以其跨平台、面向对象的特性而闻名。本项目是一个使用Java开发的记事本程序,它允许用户进行基本的文字编辑操作,如新建、打开、...

    java编写的记事本程序

    【Java编写的记事本程序】是一个利用Java编程语言实现的简单文本编辑器,它提供了基本的文本编辑功能,如更改字体、字号和字形,同时也具有良好的代码注释,便于学习和理解。这个程序是Java初学者或者对GUI编程感...

    JAVAchengxu.rar_java编写 记事本_java编写记事本

    在这个名为“JAVAchengxu.rar”的压缩包中,包含的是一个用Java语言编写的记事本应用程序的源代码。这个程序允许用户创建、编辑和保存文本文件,类似于我们日常使用的Windows记事本或Mac的TextEdit。 在Java中编写...

    Java编写的记事本程序源码

    Java编写的记事本程序源码是一个开源项目,旨在实现类似Windows系统内置记事本的功能。这个程序展示了Java编程语言在构建桌面应用程序方面的应用。Java以其“一次编写,到处运行”的特性,使得此记事本程序可以在...

    Java实现的记事本程序

    值得注意的是,虽然Java GUI应用程序通常在本地运行,但Java的跨平台特性使得这个记事本程序可以在任何安装了Java运行环境的操作系统上运行,这正是Java"一次编写,到处运行"理念的体现。 总的来说,这个"Java实现...

    java语言编写的记事本

    【标题】:“java语言编写的记事本” 这个标题揭示了我们要讨论的是一个使用Java编程语言开发的应用程序,具体来说是一个记事本程序。Java是一种跨平台的编程语言,这意味着用Java编写的程序可以在安装了Java运行...

    java编写的记事本(代码)

    【Java编写的记事本(代码)】 Java是一种广泛使用的编程语言,以其“一次编写,到处运行”的跨平台特性而闻名。在这个项目中,我们关注的是一个由Java编写的简单记事本应用程序。记事本是日常生活中常见的文本编辑...

    java编写的记事本源码

    Java编写的记事本源码是一个基础但实用的编程示例,它展示了如何利用Java语言实现文本编辑器的功能。这个记事本程序包含了常见的文本编辑操作,如打开、写入、修改和复制文件,这些都是日常计算机用户在处理文本时...

    JAVA编写的记事本

    Java编写的记事本是一款基于Java编程语言开发的文本编辑工具,它允许用户进行基本的文字输入、编辑和保存操作。Java作为一种跨平台的编程语言,使得这款记事本应用程序可以在不同的操作系统上运行,如Windows、Mac ...

    java语言编写的日历记事本

    Java语言编写的日历记事本是一个典型的桌面应用程序,它结合了日历和记事本的功能,方便用户管理和记录日常生活中的事务。这个程序的核心特点在于其简洁易用的界面和强大的功能集成,使得用户能够在同一平台上查看...

    java 编写的记事本

    Java编写的记事本是一个基于Java编程语言实现的文本编辑器,它提供了基本的记事本功能,如打开、编辑、保存文本文件等。在Java中实现这样的应用程序,开发者通常会利用Java丰富的类库和面向对象特性来构建功能模块。...

    java记事本代码

    Java记事本代码是使用Java语言编写的一款记事本应用程序,该应用程序实现了基本的文本编辑和保存功能。本文将对该代码进行详细的解释,包括其实现的主要功能、关键技术和重要组件。 主要功能 Java记事本代码实现了...

Global site tag (gtag.js) - Google Analytics