【Java】实现一个简易记事本Notepad的编写
2013-07-25 00:01
609 查看
记事本功能介绍
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() 相当于取得文件的绝对路径前缀。
取得路径后,就可以将文件打开并写到文本框中。
具体操作见博客:
http://blog.csdn.net/oyuntaolianwu/article/details/9429953
代码举例
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编写一个简单的字符串加密解密程序,将字符串分成若干行,实现字符串以一列一列读取,并还原之前输入的字符串。这里实现4行输出。
- 编写一个 JAVA 程序,实现输出考试成绩的前三名
- 用Linux编写程序,实现一个简易的进度条
- 用JAVA编写一个算法实现对一个字符数组的所有元素的所有组合
- 编写一个简易的Java NIO Reactor库
- 一个GUI的简单练习-------- Java记事本 简单实现 陆续完善中……
- 编写一个简易的留言薄,实现添加留言和显示留言内容的功能
- 习题10:参照Windows系统“附件”中的“计算器”,自行编写一个简易的计算器。要求:可以实现由0~4构成的整数的加减运算。
- [java网络编程]一个简易网络服务器的实现
- 利用Java GUI 实现一个简易的用户管理系统
- 【Java】编写一个方法,实现基本的字符串压缩功能
- 一个GUI的简单练习-------- Java记事本 简单实现 陆续完善中……
- JAVA基础 day24 GUI的学习 事件监听机制 编写简易的记事本 jar包双击执行
- 【Java】实现一个根据日期判断星座程序的编写
- 如何实现多个线程同步 (2013-11-10 12:07:24)转载▼ 标签: it 在编写一个类时,如果该类中的代码可能运行于多线程环境下,那么就要考虑同步的问题,Java实现线程同步的方法很多
- java 编写程序实现从控制台接收一个 5 位以上的整数,使用数组来判断该数字 * 是否是回文数。(例如:789987,12344321是回文数)
- 【Java】运用JDBC实现一个注册、登录系统的编写
- 通过JAVA程序写一个简易的记事本
- Java实例 定义任务的一个发射小程序 实现Runnable接口并编写run()方法