记事本功能介绍

1.   新建:记事本清空。
2.   打开:可打开笔记本上任意文本文件。
3.   保存:将文件保存至当前文件夹。
4.   另存为:将文件保存至任意位置。
5.   退出:退出时确认退出前是否保存内容。
【注:“保存”和“另存为”时,应指明文件的后缀,如:XXX.txt】

记事本图例


打开笔记本上任意文本文件

该操作需要用到  FileDialog 类 中的 FileDialog.LOAD);
		FileDialog fd = new FileDialog(this, "打开", FileDialog.LOAD);
fd.setVisible(true);
值得注意的是,在获取文件路径时,相关操作为:
String strFile = fd.getDirectory() + fd.getFile();

若没有 fd.getDirectory()  则只能打开当前文件夹。fd.getDirectory()  相当于取得文件的绝对路径前缀。

取得路径后,就可以将文件打开并写到文本框中。
具体操作见博客:

代码举例
	private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
FileDialog fd = new FileDialog(this, "打开", FileDialog.LOAD);
fd.setVisible(true);
String strFile = fd.getDirectory() + fd.getFile();
if (strFile != null) {
try {
FileInputStream fis = new FileInputStream(strFile);
byte[] buf = new byte[10 * 1024];
int len = fis.read(buf);
jTextArea1.append(new String(buf, 0, len));
fis.close();
} catch (Exception e) {
System.out.println("打开失败");
}
}
}

打开图例:


将文件保存至任意位置

实际上,与上述操作相仿。只不过,是一个读一个写。
取得文件路径和内容后,相关操作就容易很多了。

代码举例:
	private void jMenuItem4ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
FileDialog fd = new FileDialog(this, "另存为", FileDialog.SAVE);
fd.setVisible(true);
String string1 = jTextArea1.getText();
String stringfile = fd.getDirectory()+fd.getFile();
BufferedWriter bWriter = null;
try {
bWriter = new BufferedWriter(new FileWriter(stringfile));
bWriter.write(string1);
bWriter.close();
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println("保存失败");
}
}

另存为图例



记事本 NotePad  代码

/*
* Test_Notepad.java
*
* Created on __DATE__, __TIME__
*/ //package com.test; import java.awt.*;
import java.io.*; import javax.swing.JOptionPane; /**
*
* @author __USER__
*/
public class Test_Notepad extends javax.swing.JFrame { /** Creates new form Test_Notepad */
public Test_Notepad(String name) {
super(name);
initComponents();
setLocation(450, 200);
} /** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
//GEN-BEGIN:initComponents
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() { jScrollPane1 = new javax.swing.JScrollPane();
jTextArea1 = new javax.swing.JTextArea();
jMenuBar1 = new javax.swing.JMenuBar();
jMenu1 = new javax.swing.JMenu();
jMenuItem1 = new javax.swing.JMenuItem();
jMenuItem2 = new javax.swing.JMenuItem();
jMenuItem3 = new javax.swing.JMenuItem();
jMenuItem4 = new javax.swing.JMenuItem();
jSeparator1 = new javax.swing.JSeparator();
jSeparator2 = new javax.swing.JSeparator();
jMenuItem6 = new javax.swing.JMenuItem();
jMenu2 = new javax.swing.JMenu();
jMenuItem7 = new javax.swing.JMenuItem();
jMenuItem8 = new javax.swing.JMenuItem();
jMenuItem9 = new javax.swing.JMenuItem();
jMenuItem10 = new javax.swing.JMenuItem();
jMenuItem11 = new javax.swing.JMenuItem(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); jTextArea1.setColumns(20);
jTextArea1.setRows(5);
jScrollPane1.setViewportView(jTextArea1); jMenu1.setText("\u6587\u4ef6");
jMenu1.setMinimumSize(new java.awt.Dimension(35, 19)); jMenuItem1.setText("\u65b0\u5efa");
jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem1ActionPerformed(evt);
}
});
jMenu1.add(jMenuItem1); jMenuItem2.setText("\u6253\u5f00");
jMenuItem2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem2ActionPerformed(evt);
}
});
jMenu1.add(jMenuItem2); jMenuItem3.setText("\u4fdd\u5b58");
jMenuItem3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem3ActionPerformed(evt);
}
});
jMenu1.add(jMenuItem3); jMenuItem4.setText("\u53e6\u5b58\u4e3a");
jMenuItem4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem4ActionPerformed(evt);
}
});
jMenu1.add(jMenuItem4);
jMenu1.add(jSeparator1);
jMenu1.add(jSeparator2); jMenuItem6.setText("\u9000\u51fa");
jMenuItem6.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem6ActionPerformed(evt);
}
});
jMenu1.add(jMenuItem6); jMenuBar1.add(jMenu1); jMenu2.setText("\u7f16\u8f91"); jMenuItem7.setText("\u64a4\u9500");
jMenu2.add(jMenuItem7); jMenuItem8.setText("\u526a\u5207");
jMenu2.add(jMenuItem8); jMenuItem9.setText("\u590d\u5236");
jMenu2.add(jMenuItem9); jMenuItem10.setText("\u7c98\u8d34");
jMenu2.add(jMenuItem10); jMenuItem11.setText("\u5220\u9664");
jMenu2.add(jMenuItem11); jMenuBar1.add(jMenu2); setJMenuBar(jMenuBar1); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(
getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING).addComponent(
jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 400,
Short.MAX_VALUE));
layout.setVerticalGroup(layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING).addComponent(
jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 279,
Short.MAX_VALUE)); pack();
}// </editor-fold>
//GEN-END:initComponents private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
jTextArea1.setText(null);
} private void jMenuItem4ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
FileDialog fd = new FileDialog(this, "另存为", FileDialog.SAVE);
fd.setVisible(true);
String string1 = jTextArea1.getText();
String stringfile = fd.getDirectory()+fd.getFile();
BufferedWriter bWriter = null;
try {
bWriter = new BufferedWriter(new FileWriter(stringfile));
bWriter.write(string1);
bWriter.close();
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println("保存失败");
}
} private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String FileName = JOptionPane.showInputDialog("请输入保存的文件名:");
String string1 = jTextArea1.getText();
if (FileName != null) {
BufferedWriter bWriter = null;
try {
bWriter = new BufferedWriter(new FileWriter(new File(FileName)));
bWriter.write(string1);
bWriter.close();
} catch (Exception e) {
System.out.println("保存失败");
}
}
} private void jMenuItem6ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
int result = JOptionPane.showConfirmDialog(null, "退出前是否保存?");
if (result == JOptionPane.YES_OPTION) {
String FileName = JOptionPane.showInputDialog("请输入保存的文件名:");
String string1 = jTextArea1.getText();
if (FileName != null) {
BufferedWriter bWriter = null;
try {
bWriter = new BufferedWriter(new FileWriter(new File(
FileName)));
bWriter.write(string1);
bWriter.close();
} catch (Exception e) {
System.out.println("保存失败");
}
}
System.exit(0);
} else if (result == JOptionPane.NO_OPTION) {
System.exit(0);
}
} private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
FileDialog fd = new FileDialog(this, "打开", FileDialog.LOAD);
fd.setVisible(true);
String strFile = fd.getDirectory() + fd.getFile();
if (strFile != null) {
try {
FileInputStream fis = new FileInputStream(strFile);
byte[] buf = new byte[10 * 1024];
int len = fis.read(buf);
jTextArea1.append(new String(buf, 0, len));
fis.close();
} catch (Exception e) {
System.out.println("打开失败");
}
}
} public void SaveNotepad() {
String FileName = JOptionPane.showInputDialog("请输入保存的文件名:");
String string1 = jTextArea1.getText();
if (FileName != null) {
BufferedWriter bWriter = null;
try {
bWriter = new BufferedWriter(new FileWriter(new File(FileName)));
bWriter.write(string1);
bWriter.close();
// Thread.sleep(1000);
} catch (Exception e) {
e.printStackTrace();
}
}
} /**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
Test_Notepad notepad = new Test_Notepad("决Jue的记事本");
notepad.setVisible(true);
}
});
} //GEN-BEGIN:variables
// Variables declaration - do not modify
private javax.swing.JMenu jMenu1;
private javax.swing.JMenu jMenu2;
private javax.swing.JMenuBar jMenuBar1;
private javax.swing.JMenuItem jMenuItem1;
private javax.swing.JMenuItem jMenuItem10;
private javax.swing.JMenuItem jMenuItem11;
private javax.swing.JMenuItem jMenuItem2;
private javax.swing.JMenuItem jMenuItem3;
private javax.swing.JMenuItem jMenuItem4;
private javax.swing.JMenuItem jMenuItem6;
private javax.swing.JMenuItem jMenuItem7;
private javax.swing.JMenuItem jMenuItem8;
private javax.swing.JMenuItem jMenuItem9;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JSeparator jSeparator1;
private javax.swing.JSeparator jSeparator2;
private javax.swing.JTextArea jTextArea1;
// End of variables declaration//GEN-END:variables }

Java学习笔记——实现一个简易记事本Notepad的编写的更多相关文章

  1. Java学习笔记7(简易的超市库存管理系统示例)

    用以前学过的知识,可以简单地做一个超市库存管理系统: 定义一个商品类: public class FruitItem { int ID; String name; double price; int ...

  2. java学习笔记—实现一个类MyInputStream(28)

    1 实现一个类MyInputStream读取文件,且不能抛出异常 public class TestDemo { public static void main(String[] args) thro ...

  3. Java 学习笔记 判断一个数组是否有序

    思路 升序:每次比较数组中的两个数的时候,最大的数一定是前一个 降序: 每次比较数组中的两个数的时候,最小的数一定是前一个 Flag1和flag2都是假的时候,返回flase,否则,返回flase 代 ...

  4. Java学习笔记4

    Java学习笔记4 1. JDK.JRE和JVM分别是什么,区别是什么? 答: ①.JDK 是整个Java的核心,包括了Java运行环境.Java工具和Java基础类库. ②.JRE(Java Run ...

  5. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

  6. 20145330《Java学习笔记》第一章课后练习8知识总结以及IDEA初次尝试

    20145330<Java学习笔记>第一章课后练习8知识总结以及IDEA初次尝试 题目: 如果C:\workspace\Hello\src中有Main.java如下: package cc ...

  7. 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁

    什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...

  8. 0035 Java学习笔记-注解

    什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annot ...

  9. Java学习笔记(04)

    Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...

随机推荐

  1. WordPress网站更换老鹰主机详细操作

    眼看着之前买的虚拟主机就要到期了,本着节约至上的美德,就和同事一起买了老鹰主机.因为第一次网站的配置是一个朋友帮忙的,所以现在想完全自己动手操作,毕竟之后的博客维护还是得靠自己.下面就来和我一起学习怎 ...

  2. 使用getGenericSuperclass()和getActualTypeArguments()将DAO做成泛型

    一.getGenericSuperclass()和getActualTypeArguments()基本用法: import java.lang.reflect.ParameterizedType; p ...

  3. Ultra-QuickSort(归并排序求逆序对数)

    Time Limit: 7000MS   Memory Limit: 65536K Total Submissions: 34283   Accepted: 12295 Description In ...

  4. GDI+画图类Graphics的使用

    一:基础定义 #region 定义线尾.线头为箭头.字体和笔刷 Pen p = );//定义画笔 蓝色,宽度为1(坐标显示颜色) p.EndCap = LineCap.ArrowAnchor;//定义 ...

  5. Android中bitmap的相关处理

    加载大图片 Options options=new Options(); options.inJustDecodeBounds=true;//不加载图片,只加载文件信息 //加载图片,获取到配置信息 ...

  6. 解读sample4

    说明 被测试代码文件 sample4.h.sample4.cc 测试代码文件 sample4_unittest.cc 官网上如是描述sample4: Sample #4 is another basi ...

  7. linux awk命令详解【转载】

    本文转载自:http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858470.html 简介 awk是一个强大的文本分析工具,相对于grep的查找 ...

  8. 使用 Maven 部署 artifact 到 Nexus 教程

    本文侧重讲解如何将已经按照好的 Maven 和 Nexus 连接,即如何通过 Maven 部署 artifact 到 Nexus. 本文前提: 1. 安装好 Maven.可以使用 Maven 创建.打 ...

  9. Objective-C中变量采用@property的各个属性值的含义

    我们在OC中定义变量,可以自己来定义变量的setter方法来设置变量值,用getter方法来获取变量值.但是当变量数量增多时,还采用手动添加setter/getter方法来操作变量,就会使得程序代码量 ...

  10. call-template和apply-templates

    对xml模板 来说,name属性是很关键的 call-template /apply-template 的name必须要和模板的name相对应.模板相当于一个函数,可以暂时这么看.而name相当于函数 ...