`
Etwo
  • 浏览: 104706 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

java 编写的记事本

阅读更多

这是一个java编写的记事本

package net.etwo.notepad;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;

import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.KeyStroke;
import javax.swing.filechooser.FileNameExtensionFilter;

/**
 * 
 * @author etwo
 * @version 1.0
 *
 */
public class TestNotepad {

	private JFrame jframe;// 主窗体
	JPanel jpanel;// 面板
	JMenuBar jmenuBar = new JMenuBar();// 菜单面板
	JMenu jmenuFile, jmenuEdit;// 主菜单
	JMenuItem jmenuItemOpen, jmenuItemNew, jmenuItemSave, jmenuItemSaveAs,
			jmenuItemExit;// 菜单中的子菜单
	JTextArea jtextArea;// 文本框
	JScrollPane jscrollPane;// 带滑动条的
	JFileChooser jfileChooser;//文件选择器
	File currentFile;

	public TestNotepad() {
		// TODO Auto-generated constructor stub
		jframe = new JFrame("我的记事本");
		jpanel = new JPanel();
		jmenuBar = new JMenuBar();
		jtextArea = new JTextArea();
		jtextArea.setLineWrap(true);//设置自动换行
		jscrollPane = new JScrollPane(jtextArea);
		jfileChooser = new JFileChooser();
		jfileChooser.setFileFilter(new FileNameExtensionFilter("文本文件(*.txt)", "txt"));
		
		jmenuFile = new JMenu("文件(F)");
		jmenuFile.setMnemonic('F');
		jmenuEdit = new JMenu("编辑(E)");
		jmenuEdit.setMnemonic('E');
		jmenuItemNew = new JMenuItem("新建(N)", 'N');
		jmenuItemNew.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, InputEvent.CTRL_DOWN_MASK));
		
		jmenuItemOpen = new JMenuItem("打开(O)", 'O');
		jmenuItemOpen.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, InputEvent.CTRL_DOWN_MASK));
		jmenuItemOpen.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				int res = jfileChooser.showOpenDialog(jframe);
				if(res == jfileChooser.APPROVE_OPTION) {
					currentFile = jfileChooser.getSelectedFile();
					jtextArea.setText("");
					openFile(currentFile);
					jframe.setTitle(currentFile + "-记事本");
					System.out.println("s");
				}
			}
		});
		jmenuItemSave = new JMenuItem("保存(S)", 'S');
		jmenuItemSave.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_DOWN_MASK));
		jmenuItemSave.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				saveFile();
			}
		});
		jmenuItemSaveAs = new JMenuItem("另存为(A)", 'A');
		jmenuItemSaveAs.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				int res = jfileChooser.showSaveDialog(jframe);
				if(res == jfileChooser.APPROVE_OPTION) {
					currentFile = jfileChooser.getSelectedFile();
					jframe.setTitle(currentFile + "-记事本");
					saveFileAs(currentFile, jtextArea.getText().replaceAll("\n", "\r\n"));
				}
			}
		});
		
		jmenuBar.add(jmenuFile);
		jmenuBar.add(jmenuEdit);
		jmenuFile.add(jmenuItemNew);
		jmenuFile.add(jmenuItemOpen);
		jmenuFile.add(jmenuItemSave);
		jmenuFile.add(jmenuItemSaveAs);
		jpanel.setLayout(new BorderLayout(2, 1));
		jpanel.add(jmenuBar, "North");
		jpanel.add(jscrollPane, "Center");
		jframe.add(jpanel);
		jframe.setSize(500, 500);
		jframe.setLocationRelativeTo(null);
		jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		jframe.setVisible(true);
	}
	
	public void saveFile() {
		if(currentFile == null) {
			int res = jfileChooser.showSaveDialog(jframe);
			if(res == jfileChooser.APPROVE_OPTION) {
				currentFile = jfileChooser.getSelectedFile();
				jframe.setTitle(currentFile + "-记事本");
			}
		}
		if(currentFile != null) {
			saveFileAs(currentFile, jtextArea.getText().replaceAll("\n", "\r\n"));
		}
	}
	
	public void saveFileAs(File file, String text) {
		PrintWriter pw = null;
		try {
			pw = new PrintWriter(file);
			pw.write(text);
			pw.flush();
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			if(pw != null) {
				pw.close();
			}
		}
	}
	
	public void openFile(File file) {
		BufferedReader br = null;
		try {
			br = new BufferedReader(new FileReader(file));
			String str = br.readLine();
			while (str != null) {
				jtextArea.append(str + "\n");
				System.out.println(str);
				str = br.readLine();
			}
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			try {
				if(br != null) {
					br.close();
				}
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}

	public static void main(String[] args) {
		new TestNotepad();
	}
}
 
1
9
分享到:
评论

相关推荐

    java编写记事本.zip

    在本项目中,"java编写记事本.zip"是一个包含Java编程实现的简易记事本程序。这个记事本程序不仅具有基本的文字编辑功能,还特别加入了右键弹出菜单,以及查找和替换功能,虽然查找功能在界面中未直接展示,但其逻辑...

    用java编写记事本设计与实现

    关于记事本的编辑,里面有查找替换,字体,颜色。不过对于对齐方式自己设计的不怎么行

    JAVA编写记事本程序

    JAVA编写记事本程序,已做好!!!!!!!!!!!!!!!1

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

    在Java中编写记事本程序涉及到许多关键知识点,主要包括: 1. **基础语法与控制结构**:Java的基础语法包括变量声明、数据类型、运算符、流程控制(如if语句、for循环、while循环等)。这些是任何Java程序的基础,...

    Java编写记事本.jar

    Java编写记事本.jar

    用java编写记事本

    "用java编写记事本"这个项目涵盖了多个Java核心技术,包括Swing库用于构建用户界面,以及IO流处理进行文件的读写操作。下面我们将深入探讨这些知识点。 首先,`Swing`是Java提供的一套丰富的组件库,用于构建桌面...

    java编写的记事本

    【标题】:“java编写的记事本” 在IT领域,编程语言Java被广泛应用于各种软件开发,包括桌面应用。这个“java编写的记事本”项目就是一个实例,它利用Java的强大功能来实现基本的文本编辑操作,类似于我们常见的...

    java编写记事本

    强大的记事本,功能齐全,新建 打开 保存 退出 复制 粘贴 剪切 删除 全选 时间 字体 自动换行 帮助 关于等待

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

    标题中的“目前网上最详细的java编写的记事本程序”表明这是一个使用Java编程语言实现的类似于Windows记事本的应用程序。这个程序旨在模仿并扩展Windows记事本的基本功能,可能是为了教学、练习或是个人项目的需求。...

    Java编写记事本

    从给定的文件信息,我们可以看到,这是一个 Java 编写的记事本程序,涉及到图形界面编程、事件处理、文件读写等多方面的知识点。下面,我们将对这些知识点进行详细的解释和总结。 图形界面编程 在 Java 中,图形...

    用java编写记事本程序

    在本主题中,我们将深入探讨如何使用Java来编写一个基本的记事本程序。这个程序,如标题所述,可以作为一个实用工具,允许用户创建、编辑和保存文本文件,类似于我们日常使用的桌面记事本应用程序。 首先,我们需要...

    JAVA编写的记事本程序

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

    Java编写的记事本程序源码

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

    java编写的记事本程序

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

    java编写的记事本代码

    java 2 se编写的一个小程序,比较简单,使用等等等等特点。

    同java编写记事本

    用java编写的记事本功能,有粘贴复制全选,字体的设置,实现了保存,另存为等功能。

    java 编写的记事本 源代码

    总的来说,这个Java编写的记事本源代码是一个很好的学习资源,涵盖了GUI编程、文件操作、事件处理等多个Java核心概念。对于想要深入学习Java桌面应用开发的人来说,它提供了实践和理解这些概念的实例。

    java编写的记事本源码

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

    java记事本和设计文档

    编写用户手册,详细介绍记事本的使用方法,帮助用户快速上手。同时,记录开发过程中的问题和解决方案,为后续维护和改进提供参考。 通过这个项目,你不仅可以提升Java编程技能,还能深入理解文件I/O、GUI编程和...

    java记事本(实现全功能)

    Java记事本是一款基于Java编程语言开发的全功能文本编辑器,它旨在提供与Windows操作系统内置的记事本相似甚至更多的功能。通过使用Java,这款记事本应用程序具备跨平台特性,可以在安装了Java运行环境的任何操作...

Global site tag (gtag.js) - Google Analytics