资源预览内容
第1页 / 共16页
第2页 / 共16页
第3页 / 共16页
第4页 / 共16页
第5页 / 共16页
第6页 / 共16页
第7页 / 共16页
第8页 / 共16页
第9页 / 共16页
第10页 / 共16页
亲,该文档总共16页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
课 程 设 计 报 告学院、系:吉林大学珠海学院计算机科学与技术系专业名称:计算机科学与技术课程设计科目java程序课程设计学生姓名:陈舒韵指导教师:陈红玲完成时间:3月-7月(课程设计报告正文部分)题目3一、设计任务与目标编写一个窗口程序,该程序可以打开硬盘中的某个目录,并可以打开目录中某个文件进行浏览。设计要求:1)在界面上设计两个文本区,一个用于显示打开的硬盘上的目录,另一用于打开所选中该目录中的文件。2)设计文本框,用于显示当前的目录位置*3)设计一个“压缩”按钮,和一个指定目录文本框,将选中的这个文件压缩到指定的目录中。二、方案设计与论证 针对这道题的特点,首先做一个界面、构造一个目录树模型,用swing做界面设计,JTree实现系统目录,界面内容包括显示目录的文本框、显示目录树形和显示目录中文件别表的两个文本区,分别设置监听器,监听目录树节点以及界面内的一个button,各个分功能对应各自的类。在做这道题时遇到最大的障碍就是实现系统文件目录树中涵盖了JTree的大部分属性,这部分知识课本上只略微提及了一下,参考了很多别人的程序,需要用到File fles = file.listFiles()这个技术(用以得到某文件夹下的子文件夹),目前为止自己也十分不熟悉,编写的很多程序都是直接挪用别人的。因为技术有限,显示目录文件的文本区最后只能做到显示目录文件名称,故最后第三问未能完成。三、程序框图或流程图,程序清单与调用关系主界面显示目录路径显示树形目录显示目录文件构造目录树模型监听器四、全部源程序清单package kechengsheji;import java.awt.*;import java.awt.event.*;import java.io.*;import java.util.*;import javax.swing.*;import javax.swing.tree.*;import javax.swing.event.*;public class TiMu3 extends JFrame public static final ImageIcon ICON_FOLDER = new ImageIcon(folder.gif);public static final ImageIcon ICON_COMPUTER = new ImageIcon(computer.gif);public static final ImageIcon ICON_DISK = new ImageIcon(disk.gif);public static final ImageIcon ICON_EXPANDEDFOLDER = new ImageIcon(expandedfolder.gif);protected JTree m_tree;protected DefaultTreeModel m_model;/一个目录树模型protected JTextField m_display;/m_display就是显示目录的那个JTextFieldprotected JTextArea ta;public String s;public BufferedReader fin;public TiMu3() super(Directories Tree); setBounds(320, 100, 450, 400); DefaultMutableTreeNode top = new DefaultMutableTreeNode( new IconData(ICON_COMPUTER, null, Computer);/构造默认树形父节点,名字为Computer DefaultMutableTreeNode node;/定义父节点下边的节点 File roots = File.listRoots();/列出可用的文件系统根 for ( int k = 0 ; k roots.length; k + ) node = new DefaultMutableTreeNode(new IconData( ICON_DISK, null, new FileNode(rootsk);/从k=0开始建立新的节点 top.add(node);/在树形父节点下构造其孩子节点 node.add( new DefaultMutableTreeNode(new Boolean(true);/在构造的孩子节点下构造字节点 m_model = new DefaultTreeModel(top);/以top节点为首节点建立一个目录树模型 m_tree = new JTree(m_model);/目录树以目录树模型m_model建立目录树 m_tree.putClientProperty(JTree.lineStyle, Angled); TreeCellRenderer renderer = new IconCellRenderer(); m_tree.setCellRenderer(renderer); m_tree.addTreeExpansionListener(new DirExpansionListener();/添加响应 m_tree.addTreeSelectionListener(new DirSelectionListener();/添加响应 m_tree.getSelectionModel().setSelectionMode( TreeSelectionModel.SINGLE_TREE_SELECTION); m_tree.setShowsRootHandles(true); /设置显示源处理? m_tree.setEditable(false); /界面设置 JScrollPane s = new JScrollPane();/新建一个滚动的Pane s.getViewport().add(m_tree);/把m_tree添加到滚动的Pane里去 add(s, BorderLayout.CENTER);/把s添加到JFrame的中区 m_display = new JTextField();/显示目录的文本区 Panel p = new Panel();/新建一个面板p p.setLayout(new BorderLayout(); p.add(m_display,BorderLayout.CENTER);/把文本区添加到p的中区 Button b = new Button(确定);/新建一个“确定”按钮b b.addActionListener(new TT();/给Button添加监听器 p.add(b,BorderLayout.EAST);/把b添加到p的东区 add(p, BorderLayout.NORTH);/把p添加到JFrame的北区 ta=new JTextArea(12,12);/文本区用于打开所选中目录的文件 ta.setBackground(Color.yellow); JScrollPane s1 = new JScrollPane();/新建一个滚动的Pane(s1) s1.getViewport().add(ta);/把ta添加到滚动的Pane(s1)里去 add(s1, BorderLayout.SOUTH);/把s1添加到JFrame的南区 WindowListener wndCloser = new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ; addWindowListener(wndCloser); setVisible(true); /end of structured method DefaultMutableTreeNode getTreeNode(TreePath path) return (DefaultMutableTreeNode)(path.getLastPathComponent();/获取选中节点 FileNode getFileNode(DefaultMutableTreeNode node) if (node = null) return null; Object obj = node.getUserObject(); if (obj instanceof IconData) obj = (IconData)obj).getObject(); if (obj instanceof FileNode) return (FileNode)obj; else return null; / Make sure expansion is threaded and updating the tree model / only occurs within the event dispatching thread. class DirExpansionListener implements TreeExpansionListener public void treeExpanded(TreeExpansionEvent event) final DefaultMutableTreeNode node = getTreeNode( event.getPath(); final FileNode fnode = getFileNode(node); Thread runner = new Thread()
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号