`
韬光养晦
  • 浏览: 70633 次
  • 性别: 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语言编写的一个记事本

    用java语言编写的记事本,能实现微软自带的所有功能,并且可以变换背景颜色,结课实训时编写的,代码通俗易懂

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

    这是个简单的记事本程序。使用java语言。内含工程文件及源代码

    Java实现的记事本程序

    用Java语言实现的记事本程序,有工具条,实现了新建、打开、保存、复制、剪切、粘贴、退出等功能,并且图形用户界面较美观。

    Java编写的记事本.rar

    Java编写的记事本,一个文本编辑器程序,用JAVA代码编写实现,貌似在各种编程语言中,初学者都会以记事本为原型,仿写出一些字符编辑文字处理小程序,通过编写这种小程序,可学习到字符的处理技巧,本源码也不例外,...

    java编写的记事本源代码,

    java语言编写的类似于记事本的源代码,有助于j2se的学习。

    用java语言编程 实现 记事本编写

    程序界面友好,代码的可维护性好,包括必要的注释和相应的文档。 具体要求:基本的文本录入,字符修改,删除,换行,粘贴,复制,剪切等功能,主要包括: 1. 菜单栏设计及功能实现:菜单栏主要包括文件、编辑、格式...

    大作业_记事本代码

    这份文档是利用java语言编写的记事本源代码,其中包含了项目文档及相关注释,可以实现现有记事本的绝大部分功能,是Java初学者的较好的选择,可以用做学习、入门等用途;其中实现了记事本的文件保存、另存为、字体、...

    简易记事本java程序

    用java语言编写的简易记事本,实现新建、打开、保存txt文件的功能,也可以实现对字体格式的调整。

    用java语言编写的notepad小记事本程序

    类似与微软的记事本java小程序,源代码!

    Java 实现Windows 记事本里的新建、编辑、格式相关功能源代码实现

    本记事本是通过Java语言编写,其中实现的功能如下: 1.文件功能实现模块 1.1 新建 1.2 打开 1.3 保存 1.4 新窗口 1.5 另存为 1.6 退出 2.编辑模块 2.1 剪辑 2.2 复制 2.3 粘贴 2.4 删除 2.5 时间/日期 ...

    用JAVA语言写的记事本

    用JAVA写的一个记事本、JAVA编写的小程序,适合初学者、简单的JAVA小程序

    java课程设计:日历记事本

    通过该题目的设计,培养学生面向对象程序设计的思想,要求学生达到熟练掌握Java语言的基本知识和技能,基本掌握面向对象程序设计的基本思路和方法,能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。...

    java课程设计作业--记事本程序

    =======学生党纯手打======= 编写一个记事本程序 要求: 用图形用户界面实现。 能实现编辑、保存、另存为、查找替换等功能。 提示:使用文件输入输出流。

    超强记事本,功能全完善

    该记事本为本人自己编写,代码约为2000行。用JAVA语言编写。程序实现了windows系统自带记事本的所有功能,包括打印和页面设置等等,此外还增加了许多额外功能。欢迎下载和联系作者!

    java记事本

    仿windows记事本,用java语言编写,压缩包里含打包工具和程序源码,以及实现过程和最后生成的程序

    JAVa记事本源代码

    JAVA语言编写的记事本源代码

    Java程序设计基础:使用命令行方式开发Java程序.pptx

    1.用记事本编写Java程序 2.编译Java程序 javac Welcome.java (得到Welcome.class文件) java Welcome (省略.class) 程序名 Welcome.java 保存位置 d:\javacode 在控制台输出“Welcom to Java!” 3.执行Java程序 1.用...

    JAVA上百实例源码以及开源项目源代码

     使用Java语言编写的一款用于反映颜色变化的面板,也就是大家熟悉的颜色调色板演示程序。原理是初始化颜色选择按钮,然后为颜色选择按钮增加事件处理事件,最后实例化颜色选择器。 Java二进制IO类与文件复制操作...

    java源码包---java 源码 大量 实例

     使用Java语言编写的一款用于反映颜色变化的面板,也就是大家熟悉的颜色调色板演示程序。原理是初始化颜色选择按钮,然后为颜色选择按钮增加事件处理事件,最后实例化颜色选择器。 Java二进制IO类与文件复制操作...

Global site tag (gtag.js) - Google Analytics