个人项目(WC.exe)(java)(基于图形界面)
一、Github项目地址:https://github.com/Leungdc/ENhomework
二、PSP:
PSP2.1 |
Personal Software Process Stages |
预估耗时(分钟) |
实际耗时(分钟) |
·Planning |
·计划 |
40 |
60 |
· Estimate |
· 估计这个任务需要多少时间 |
30 |
30 |
·Development |
·开发 |
1500 |
1860 |
· Analysis |
· 需求分析 |
30 |
70 |
· Design Spec |
· 生成设计文档 |
30 |
30 |
· Design Review |
· 设计复审 |
20 |
15 |
· Coding Standard |
· 代码规范 |
60 |
40 |
· Design |
· 具体设计 |
20 |
30 |
· Coding |
· 具体编码 |
1440 |
1800 |
· Code Review |
· 代码复审 |
30 |
120 |
· Test |
· 测试(自我测试,修改代码,提交修改) |
20 |
80 |
·Reporting |
·报告 |
60 |
60 |
· Test Report |
· 测试报告 |
60 |
40 |
· Size Measurement |
· 计算工作量 |
20 |
20 |
· Postmortem & Process Improvement Plan |
· 事后总结, 并提出过程改进计划 |
30 |
30 |
合计 |
1700 |
2000 |
三、解题思路
架构:基于图形界面的wc.exe程序实现。
主窗体(WC.exe):运行程序 → 弹出窗体 → 用户在窗体内的文本域进行指令的输入 → 点击开始按钮 → 程序执行
副窗体(可用文件):在主窗体中的文本域输入“-x” → 打开副窗体 → 用户点击按钮扫描系统中所有的.c文件 → 选中文件 → 点击开始按钮 → 程序执行
具体窗体图
问题一:这是一个什么窗体?
答:JFrame。
问题二:下方的文本域用的是什么组件?
答:JTextArea。
问题三:为什么不用JTextFiled而用JTextArea
答:JTextField中的文本域只有一行。
问题四:如何给JTextArea添加滚动条?
答:把JTextArea添加到JScrollPane中,当文本域中的文本宽或高超出文本域时,会自动显现上下滚动条或左右滚动条。
问题五:怎么接受到用户的输入,并将输出显示在文本域中呢?
答:JTextArea中的.getText方法和.setText方法可以分别得到和设置文本域中的内容,返回类型为String
四、设计过程实现
//由于在具体的实现中副窗体中的代码大多是主窗体代码的复用,所以下面只讨论主窗体的代码组织
在WCview类中有一个主类以及十三个方法,按照功能可以分为基本方法和指令方法,按照其使用的独立性可以分为独立方法和非独立方法。
非独立方法:WCview();initialize();Readfile();方法,其中,
WCview方法调用initialize方法,对设计的窗体进行初始化操作,如设置窗体的大小,窗体中按钮的事件监听器等;
而Readfile()方法则是对“开始”按钮的事件反应,当用户点击“开始”按钮时,就会自动调用Readfile()方法;该方法内容包括如下几点:
1、textArea.getArea获取文本域中的指令。
2、对于非法的指令,在文本域中设置报错信息(textArea.setTextArea)反映给用户。
3、对于合法的指令,读取文本域中用户输入的文件路径,File f = new file(路径);创建文件对象,并使用switch方法对指令进行判断,如“-c”;,
独立方法:如wActionPerformed();refresh()方法等,根据程序的需要,设计了独立的代码,供其他类或方法使用。
按照功能分为的基本方法和指令方法
基本方法:1.readtoString方法;根据所所选文件的编码方式,返回字符串数据
2.print方法,递归查找全盘,或者所选根目录下符合要求的.c文件
3.getdirectory方法,递归查找全盘的.c文件
4.refresh方法,刷新一些重要的全局变量
指令方法:1.-cActionPerformed(): -c指令的实现①正则表达式匹配String内容。②对匹配内容计数,.setText方法输出到文本域中。
2.-wActionPerformed(): -w指令的实现①正则表达式匹配String内容。②对匹配内容计数,.setText方法输出到文本域中。
3.-aActionPerformed(): -a指令的实现①正则表达式匹配String内容。②对匹配内容计数,.setText方法输出到文本域中。
4.-lActionPerformed(): -l指令的实现①.setText输出文件内容到文本域。②.getlineCount对行数计数,.setText方法输出行数。
5.-sActionPerformed();
-s(+路径):递归处理全盘或者所加路径下所有的.c文件。
-s-c/w/l/a: ①用print方法读取目录下的所有.c文件 ②用Readfile读取文件内容 ③ 按需求用.setText方法输出到文本域中。
6.-xActionPerformed();
①自动打开-x操作的窗体
②用户点击“扫描”按钮后扫描全盘下的.c文件,并输出到textArea
③用户选择要操作的目录,点击“开始”按钮输出相关信息。
个人项目(WC.exe)(java)(基于图形界面)的更多相关文章
- 个人项目-WC.exe (Java实现)
一.Github项目地址:https://github.com/blanche789/wordCount/tree/master/src/main/java/com/blanche 二.PSP表格 P ...
- WC.exe(Java实现)
一.GitHub项目地址:https://github.com/nullcjm/mypage 二.项目相关要求: wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数.这个项目要求写 ...
- 【计项02组01号】Java版图形界面计算器
Java版图形界面计算器1.0版本 项目分析[1.0] 组成部分 代码结构 (1)窗口的创建 在<JDK 核心 API>中我们提到,创建一个窗口需要使用 JFrame 类.在本实验中,我们 ...
- Java的图形界面依然是跨平台的
Awt:抽象窗口工具箱,它由三部分组成: ①组件:界面元素: ②容器:装载组件的容器(例如窗体): ③布局管理器:负责决定容器中组件的摆放位置. 图形界面的应用分四步: ① 选择一个容器: ⑴wind ...
- Java Swing 图形界面开发(目录)
Java Swing 图形界面开发(目录) 2017年05月30日 23:50:42 阅读数:5228 本文链接: http://blog.csdn.net/xietansheng/article/d ...
- Java Swing图形界面开发
本文转自xietansheng的CSDN博客内容,这是自己见过的最通俗易懂.最适合快速上手做Java GUI开发的教程了,这里整合一下作为自己以后复习的笔记: 原文地址:https://blog.cs ...
- Java自学-图形界面 容器
Swing 的容器 JFrame和JDialog java的图形界面中,容器是用来存放 按钮,输入框等组件的. 窗体型容器有两个,一个是JFrame,一个是JDialog 步骤 1 : JFrame ...
- WC.exe(基于Java实现)
一.github地址 https://github.com/Mazin-hub/MyWC.exe.git 二.PSP表格 PSP2.1 Personal Software Process Stage ...
- Java 快速开发几 MB 独立 EXE,写图形界面很方便
Java 写的桌面软件带上运行时只有 6 MB,而且还是独立 EXE 文 件,是不是难以置信? 想一想 Electron 没写多少功能就可能超过百 MB 的体积,Java 写的桌面软件算不算得上小.轻 ...
随机推荐
- PHP配置篇(一)--php开启redis扩展
因为最近要用到Redis,下面记录下如何给PHP开启redis的扩展. 一.安装redis 1.安装redis:https://github.com/MSOpenTech/redis/releases ...
- python函数内容
在刚接触python的时候就有个疑问,什么是函数? python语言的函数和数学语言的函数有区别吗? 什么是函数 数学函数:给定一个数集A,假设其中的元素为x.现对A中的元素x施加对应法则f,记作f( ...
- Ubuntu 图形界面和终端切换
场景 在使用Ubuntu时,不小心按下了 ctrl+alt+f3,突然进入终端,好慌 解决 Ubuntu保留了纯命令行模式,按下 ctrl+alt+f2-6 可以进入纯命令行界面 之后按下 ctrl+ ...
- unittest执行顺序,使用unittest.main()按照test开头,由0-9,A-Z,a-z的顺序执行; 可使用TestSuite类的addTest方法改变执行顺序;
import unittestclass Study(unittest.TestCase): # def setUp(self): # print('start') # def tearDown(se ...
- 201871010135 张玉晶《面向对象程序设计(java)》第七周学习总结
201871010135 张玉晶<面向对象程序设计(java)>第七周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ ...
- ShiroUtil 对密码进行加密
ShiroUtil 对密码进行加密 package com.mozq.sb.shiro02.config; import org.apache.shiro.authc.SimpleAuthentica ...
- Python实现网络图形化界面多人聊天室 - Windows
Python实现网络图形化界面多人聊天室 - Windows 项目名称:网络多人聊天室图形界面版本 项目思路: server.py 服务端文件,主进程中,创建图形化界面,询问地址(主机名,端口),点击 ...
- ubuntu16.04下安装nvidia驱动心得
首先机器重启后莫名出现循环登录错误,然后按照网上的方法卸载掉nvidia驱动后,可以正常登录. 但还是要再装nvidia驱动.网上说的各种方法都试过了,geforce.cn官网上推荐的各种版本的run ...
- 有关tab页的
有关tab页的 1.静态的 2.动态的可以删除的 3.删除右侧,左侧,全部,除了自己以外的. 4.多了可以自动伸缩. 5.带shown事件.可以反向影响菜单去.
- java截取字符串中的最后几个字符
Java中的String类提供了一个substring(int from, int to)方法用于截取字符串中位置为from到to-1位置的字符. 因为字符串的字符位置是从0开始的,而substrin ...