Java学习笔记——实现一个简易记事本Notepad的编写
记事本功能介绍
记事本图例
打开笔记本上任意文本文件
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的编写的更多相关文章
- Java学习笔记7(简易的超市库存管理系统示例)
用以前学过的知识,可以简单地做一个超市库存管理系统: 定义一个商品类: public class FruitItem { int ID; String name; double price; int ...
- java学习笔记—实现一个类MyInputStream(28)
1 实现一个类MyInputStream读取文件,且不能抛出异常 public class TestDemo { public static void main(String[] args) thro ...
- Java 学习笔记 判断一个数组是否有序
思路 升序:每次比较数组中的两个数的时候,最大的数一定是前一个 降序: 每次比较数组中的两个数的时候,最小的数一定是前一个 Flag1和flag2都是假的时候,返回flase,否则,返回flase 代 ...
- Java学习笔记4
Java学习笔记4 1. JDK.JRE和JVM分别是什么,区别是什么? 答: ①.JDK 是整个Java的核心,包括了Java运行环境.Java工具和Java基础类库. ②.JRE(Java Run ...
- 《Java学习笔记(第8版)》学习指导
<Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...
- 20145330《Java学习笔记》第一章课后练习8知识总结以及IDEA初次尝试
20145330<Java学习笔记>第一章课后练习8知识总结以及IDEA初次尝试 题目: 如果C:\workspace\Hello\src中有Main.java如下: package cc ...
- 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁
什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...
- 0035 Java学习笔记-注解
什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annot ...
- Java学习笔记(04)
Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...
随机推荐
- matplotlib绘制精美的图表(这是教程哦)
http://sebug.net/paper/books/scipydoc/matplotlib_intro.html
- 汇编-显示我放到AL中的数值
按书上练习,有一些我看不懂. . .model flat,stdcall option casemap:none include \masmplus\include\windows.inc inclu ...
- lr 增强窗格中,如何生成调试信息?
我是根据电子书来操作的, 如何生成调试信息?在测试运行的某些时候,经常需要向输出设备发送消息,指出当前位置和其他信息.这些输出消息会出现在回放日志和 Controller 的输出窗口中.可以发送标准输 ...
- 【转】Contrary to the answers here, you DON'T need to worry about encoding!
For those goals, I honestly do not understand why people keep telling you that you need the encoding ...
- sicily 1119 Factstone Benchmark
题意:求满足n! < 2^k,n的最大值! 解题:指数比较转换成对数比较,达到降幂! 其中: log (n!) = log(n)+log(n-1)+...+log(1); log(2^k) = ...
- Hbase 设计与开发实战
Hbase 概述 大数据及 NoSQL 的前世今生 传统的关系型数据库处理方式是基于全面的 ACID 保证,遵循 SQL92 的标准表设计模式(范式)和数据类型,基于 SQL 语言的 DML 数据交互 ...
- 史上最全maven pom.xml详解
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
- 使用cocoapods导入第三方后 报错_OBJC_CLASS_$_XXX
我们手动导入第三方库的时候,感觉管理不是很方便,于是会选择使用Cocoapods管理.现在记录一下使用心得,当使用cocoapods导入afnetworking或者其他框架的时候,发现调用的时候总是报 ...
- "解密"微信开放高级接口 企业如何应对
今天(2013年10月29日)腾讯终于对外公开了微信公众平台最新的接口,一石激起千层浪,对于很多微信公众平台的运营人员来说,今天是令人兴奋的一天!微信在向申请服务号的企业开发了大量接口.用户不想输入文 ...
- JBoss 系列九十九:Rest WebService jBPM 6 集成演示样例
概述 jBPM 6 提供 Rest API 供第三方应用整合使用 jBPM 6,本文演示假设通过 Rest API: 启动流程 获取流程实例信息 启动 User Task 完毕 User Task j ...