用Java实现一个简单的记事本.doc_第1页
用Java实现一个简单的记事本.doc_第2页
用Java实现一个简单的记事本.doc_第3页
用Java实现一个简单的记事本.doc_第4页
用Java实现一个简单的记事本.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

用Java实现一个简单的记事本,使其可以通过给定文件的绝对路径打开文件,当该文件名是目录时,则打开一个目录并浏览该目录下的文件结构,即目录树形图。实现原理也不难,如下:1、判断给定的绝对路径是否为文件,若为文件则直接在编辑区中显示文件里面的内容。2、当绝对路径是目录时,则进入该目录,遍历目录内的每一个文件,并递归地打印出该目录的树形图。3、保存文件是=时,则打开文件对话框,获取对话框当前的目录路径,以及对话框中用户输入的“文件名”,据此新建一个File对象,将编辑区中的内容写入到新建的文件中,即实现了保存文件的功能。 下面是实现之后的界面: 代码实现如下:1 import java.awt.*; 2 import java.awt.event.*; 3 import java.io.*; 4 import javax.swing.*; 5 6 public class FileEditor extends JFrame 7 8 private JTextField selectField; /文件的绝对路径文本域 9 private JTextArea editArea; /编辑区 10 private JButton saveBtn; /“保存”按钮 11 private JButton openFileBtn; /“浏览”按钮 12 13 private int level = 0; /记录目录层次数 14 15 public FileEditor() 16 this.init(); 17 18 19 private void init() 20 this.setTitle(简单记事本); 21 this.setBounds(300, 50, 600, 650); 22 23 /* 24 * 面板的北边,即路径输入域、浏览按钮 25 */ 26 selectField = new JTextField(40); 27 openFileBtn = new JButton(浏览); 28 openFileBtn.addActionListener(new ActionListener() 29 public void actionPerformed(ActionEvent ae) 30 FileEditor.this.level = 0; 31 String path = selectField.getText(); 32 / 浏览目录或者文件 33 openDirOrFile(path.replaceAll(/, ); 34 35 ); 36 JPanel upPanel = new JPanel(new FlowLayout(FlowLayout.LEFT); 37 upPanel.setBackground(Color.CYAN); 38 upPanel.add(selectField); 39 upPanel.add(openFileBtn); 40 this.add(upPanel, BorderLayout.NORTH); 41 42 /* 43 * 文本编辑区 44 */ 45 editArea = new JTextArea(); 46 ScrollPane scollPanel = new ScrollPane(ScrollPane.SCROLLBARS_AS_NEEDED); 47 scollPanel.add(editArea); 48 this.add(scollPanel, BorderLayout.CENTER); 49 50 /* 51 * 保存按钮 52 */ 53 saveBtn = new JButton(保存); 54 saveBtn.addActionListener(new ActionListener() 55 public void actionPerformed(ActionEvent ae) 56 / 保存 57 saveFile(); 58 59 ); 60 JPanel southPanel = new JPanel(); 61 southPanel.setBackground(Color.green); 62 southPanel.add(saveBtn); 63 this.add(southPanel, BorderLayout.SOUTH); 64 65 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 66 this.setVisible(true); 67 68 69 /* 70 * 保存文件 71 */ 72 private void saveFile() 73 FileDialog fd = new FileDialog(this, 保存文件); 74 fd.setFile(*.java); 75 /设置为“保存”模式 76 fd.setMode(FileDialog.SAVE); 77 fd.setVisible(true); 78 /获取文件名 79 String fileName = fd.getFile(); 80 /获取对话框的当前目录 81 String dir = fd.getDirectory(); 82 /根据目录名、文件名创建一个文件,即要保存的目标文件 83 File newFile = new File(dir + File.separator + fileName); 84 PrintWriter pw = null; 85 try 86 pw = new PrintWriter(new OutputStreamWriter(new FileOutputStream( 87 newFile); 88 89 String str = editArea.getText(); 90 pw.println(str); 91 pw.flush(); 92 catch (IOException e) 93 e.printStackTrace(); 94 finally 95 pw.close(); 96 97 98 99 /* 100 * 打开目录或文件 101 * 102 * param absolutePath : 指定目录或文件的绝对路径名 103 */ 104 private void openDirOrFile(String absolutePath) 105 File file = new File(absolutePath); 106 107 if (!(file.exists() 108 editArea.setText(文件不存在!); 109 else if (file.isDirectory() 110 editArea.setText(null); 111 showDir(file); 112 else if (file.isFile() 113 try 114 FileInputStream fis = new FileInputStream(file); 115 BufferedReader br = new BufferedReader(new InputStreamReader( 116 fis); 117 String str = null; 118 editArea.setText(null); 119 while (str = br.readLine() != null) 120 editArea.append(str + rn); 121 122 br.close(); 123 catch (IOException e) 124 e.printStackTrace(); 125 126 127 128 129 130 /* 131 * 浏览目录,建立树形图 132 * 133 * param directory :需要打开的目录 134 */ 135 private void showDir(File directory) 136 File files = directory.listFiles(); 137 int len = files.length; 138 for (int i = 0; i len; i+) 139 if (filesi.isDirectory() 140 for (int j = 0; j this.level; j+) 141 editArea.append( ); 142 143 editArea.append(this.level + 1 + + + filesi.getName() + 文件夹rn); 144 this.level+; 145 showDir(filesi); 146 else if(filesi.isFile() 147 for(int j = 0; j this.level + 2; j+) 148 editArea.append( ); 149 150 editArea.append(this.level + + filesi.getAbsolutePath() + rn); 151 15

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论