ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:391.14KB ,
资源ID:18805600      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/18805600.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(操作系统课程设计 为LINUX 设计一个简单的二级文件系统 java实现界面Word格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

操作系统课程设计 为LINUX 设计一个简单的二级文件系统 java实现界面Word格式.docx

1、1题目分析为Linux设计一个简单的二级文件系统,可以实现用户登录、列出文件目录、创建目录、创建文件、删除目录、删除文件、读取文件的功能。本次设计采用的开发语言是Java,通过Java来实现整体布局和实现相关的功能。2算法设计 本次二级文件系统主要分为五大模块,分别是用户登录模块、新建目录模块、新建文件模块、删除文件模块和读取文件模块。用户登录成功后才可以进行其他模块的操作。 2.1 用户登录模块 用户登录模块要求用户输入账号与密码,当输入正确后进入主视图并能进行其他模块操作,否则提示账号密码错误并要求用户重新输入(默认的账号和密码都是“123”)。用户登录模块流程图如图1所示。图1 用户登录

2、模块流程图 2.2 新建目录模块 新建目录模块是根据用户鼠标右击时选择到的节点来确定节点的名字与路径,然后判断该节点是否可以拥有子节点,若拥有则根据用户输入的目录名称新建一个目录,否则提示不能新增目录。新建目录模块流程图如图2所示。图2 新建目录流程图 2.3新建文件模块 新建文件模块是根据用户鼠标右击时选择到的节点来确定节点的名字与路径,然后判断该节点是否可以拥有子节点,若拥有则根据用户输入的文件名称新建一个文件,否则提示不能新增文件。新建文件模块流程图如图3所示。图3 新建文件流程图 2.4 删除文件模块 删除文件模块是根据用户鼠标右击时选择到的节点来确定要删除节点的名字与路径,然后判断该

3、节点是目录还是文件。若是文件则直接删除文件,若是目录则进入该目录再删除其全部文件。删除文件模块流程图如图4所示。图4 删除文件模块流程图 2.5 读取文件模块 读取文件模块是根据FileDialog类中事先设定的默认路径而打开一个选择对话框,然后根据用户选择的文件而获取文件的名字与路径。最后通过输入流而把读取到的数据显示在一个文本域中。读取文件流程图如图5所示。图5 读取文件模块流程图3 设计实现 3.1登录界面外观布局 登录界面主要代码: JLabel labelID=null,labelPassword=null,title=null; JTextField id,password; JB

4、utton conform=new JButton(确认); JButton cancle=new JButton(取消 LoginWindow() init(); this.setTitle(登录界面 this.setBounds(400,200,550,400); this.setResizable(false); this.setVisible(true); void init() this.setLayout(null); labelID=new JLabel(请输入账号: labelID.setBounds(50, 100, 100, 30); this.add(labelID);

5、labelPassword=new JLabel(请输入密码: labelPassword.setBounds(50, 200, 100, 30); this.add(labelPassword); id=new JTextField(20); id.setBounds(170, 100, 300,30); this.add(id); password=new JTextField(20); password.setBounds(170, 200, 300, 30); this.add(password); title=new JLabel( conform.setBounds(100, 28

6、0, 80, 30); cancle.setBounds(250, 280, 80, 30); conform.addActionListener(new LoginListener(); cancle.addActionListener(new LoginListener(); this.add(conform); this.add(cancle);登录界面如图6所示图6 登录界面 3.2树状显示目录 登录成功后显示默认路径的树状文件目录的主要代码:void getRoot(DefaultMutableTreeNode superroot, File f) File files = f.li

7、stFiles(); for (int i = 0; i files.length; i+) DefaultMutableTreeNode de = new DefaultMutableTreeNode(filesi.getName(); if (filesi.isDirectory() de.setAllowsChildren(true); else de.setAllowsChildren(false); System.out.println(不是目录的有: + de.toString(); superroot.add(de); private class TreeListener imp

8、lements TreeExpansionListener / 重写两个方法 public void treeCollapsed(TreeExpansionEvent event) public void treeExpanded(TreeExpansionEvent event) DefaultMutableTreeNode node = (DefaultMutableTreeNode) (event .getPath().getLastPathComponent(); if (node.getChildCount() = 0) DefaultMutableTreeNode original

9、Node = node; String fileName = node.toString(); while (node.getParent() != null) node = (DefaultMutableTreeNode) node.getParent(); fileName = node.toString() + + fileName; System.out.println(当前展开路径名 + fileName); if (originalNode ! File f = new File(fileName); if (f.isDirectory() File files = f.listF

10、iles(); if (files != null) for (int i = 0; DefaultMutableTreeNode dmtn = new DefaultMutableTreeNode( filesi.getName(); if (filesi.isDirectory() dmtn.setAllowsChildren(true); else dmtn.setAllowsChildren(false); dtm.insertNodeInto(dmtn, originalNode, originalNode.getChildCount(); 树状目录显示如图7所示:图7 树状显示目录

11、 3.3新建目录实现主要代码:private class NewMenuAction implements ActionListener public void actionPerformed(ActionEvent e) TreePath path = tree.getSelectionPath(); MutableTreeNode node = (MutableTreeNode) path .getLastPathComponent();DefaultTreeModel model = (DefaultTreeModel) tree.getModel(); if (node.getAllo

12、wsChildren() String Name = JOptionPane.showInputDialog(null, 创建目录名称: if (!Name.equals() MutableTreeNode newNode = new DefaultMutableTreeNode(Name);/ 建立新节点 tree.fireTreeExpanded(path); model.insertNodeInto(newNode, node, 0); String fullPath = ; for (Object obj : path.getPath() String str = obj.toStri

13、ng(); if (str.endsWith() str = str.substring(0, str.length() - 1); if (fullPath.equals( fullPath += str; else fullPath += + str; File parentDir = new File(fullPath); if (parentDir.isDirectory() File currentFile = new File(fullPath + + Name); currentFile.mkdir(); else JOptionPane.showMessageDialog(nu

14、ll, 目录名不能为空 else JOptionPane.showMessageDialog(null, 不能给文件追加下级目录! return; 新建目录如图8所示,图8 新建目录 3.4新建文件实现 新建文件主要代码:private class NewFileAction implements ActionListener String fullPath = for (Object obj : String str = obj.toString(); if (str.endsWith( str = str.substring(0, str.length() - 1); if (fullPa

15、th.equals( fullPath += str; else fullPath += String FileName = JOptionPane.showInputDialog(null, 创建文件名称:FileName.equals(null) File f = new File(fullPath + + FileName); try f.createNewFile(); catch (IOException e1) e1.printStackTrace();不能添加文件!return; 新建文件如图9所示,图9 新建文件3.5删除文件实现 删除文件主要代码:private class

16、DeleteAction implements ActionListener TreePath tp = tree.getSelectionPath(); DefaultMutableTreeNode node = (DefaultMutableTreeNode) tp.getLastPathComponent(); DefaultTreeModel dtm = (DefaultTreeModel) tree.getModel(); dtm.removeNodeFromParent(node); String fullPath = for (Object obj : tp.getPath()

17、String str = obj.toString(); if (str.endsWith( str = str.substring(0, str.length() - 1); if (fullPath.equals( fullPath += str; else fullPath += File currentFile = new File(fullPath); if (currentFile.isFile() currentFile.delete(); else deleteDir(currentFile); public static boolean deleteDir(File dir)

18、 if (dir.isDirectory() String subDir = dir.list(); for (String s : subDir) deleteDir(new File(dir, s); return dir.delete();删除文件如图10所示:图10 删除文件 3.6读取文件实现 读取文件主要代码:void readFile() fileDialog = new JFileChooser(F: int state = fileDialog.showOpenDialog(null); if (state = JFileChooser.APPROVE_OPTION) try

19、 File dir = fileDialog.getCurrentDirectory(); String name = fileDialog.getSelectedFile().getName(); File file = new File(dir, name);/ 创建一新文件fw = new FileReader(file); br = new BufferedReader(fw); String s = null; this.setTitle(name); jta.setText( / 清空文本区的内容 while (s = br.readLine() ! jta.append(s +

20、n br.close(); catch (Exception e1) e1.printStackTrace();读取文件如图11所示:图11 读取文件4设计总结对于本次操作系统课程设,由于对树状显示目录这样面的内容比较陌生,刚起步阶段花了很大时间去查阅各种资料。当完成设计时,感觉掌握了以前学到的知识,并且还对操作系统应用有了更深入的认识。比如对树的展示有了很好的学习,对二级文件系统也有了很好的了解,熟练Java布局的使用,如何解决实现里面功能的各种问题。本次设计集树、监听器、布局、输入输出流、文件系统这几方面的知识而成,具有一定挑战性。5参考文献1 李刚.疯狂Java讲义. 电子工业出版社出版社,2008.2 耿祥义,张跃平.Java面向对象程序设计.清华大学出版社出版社,2009.

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1