• 大小: 13KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-12
  • 语言: Java
  • 标签: 西工大  

资源简介

西工大 软件工程 project 代码统计 实现 MFC和java版本都有

资源截图

代码片段和文件信息

/**
 * 读取文本文件
 * JavaAlpha
 */
package counter;
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.JOptionPane;

public class jtxtfm {
public static void main(String args[]) {
jtxtfrm fm = new jtxtfrm(); //这里是程序开始执行的地方,新建一个窗口
}
}

class jtxtfrm extends frame implements ActionListener {
FileDialog op sv;//文件对话框
Button btn1 btn2 btn3;//按钮
TextArea tarea;//文本框
jtxtfrm() {
super(“统计代码工具“);//标题
setLayout(null);//布局
setBackground(Color.white);//背景色
setSize(500 300);//设置大小
setVisible(true);//设置可见
btn1 = new Button(“统计“);//创建按钮
btn2 = new Button(“保存“);
btn3 = new Button(“关闭“);
tarea = new TextArea(““);//创建文本框
add(btn1);//添加按钮
add(btn2);
add(btn3);
add(tarea);
tarea.setBounds(30 50 350 200);//设置文本框位置
btn1.setBounds(420 60 50 30);
btn2.setBounds(420 120 50 30);
btn3.setBounds(420 180 50 30);
op = new FileDialog(this “打开“ FileDialog.LOAD);//新建对话框
sv = new FileDialog(this “保存“ FileDialog.SAVE);
btn1.addActionListener(this);//设置按钮点击监听事件
btn2.addActionListener(this);
btn3.addActionListener(this);
addWindowListener(new WindowAdapter() {//关闭事件处理
public void windowClosing(WindowEvent e) {
setVisible(false);//设置不可见
System.exit(0);//程序关闭
}
});
}

public void actionPerformed(ActionEvent e) {
 long normalLines = 0;
 long totalLines=0;
 long commentLines = 0;
long whiteLines = 0;
boolean comment = false;
if (e.getSource() == btn1) {//按钮1事件处理

op.setVisible(true);//设置可见
try {
File f1 = new File(op.getDirectory() op.getFile());//打开文件
FileReader fr = new FileReader(f1);
BufferedReader br = new BufferedReader(fr);//读取文件
tarea.setText(““);//设置文本框内容为空
String str=““;
while ((str = br.readLine()) != null)
{
totalLines++;
str = str.trim();
if(str.matches(“^[\\s&&[^\\n]]*$“)) {
whiteLines ++;
} else if (str.startsWith(“/*“) && !str.endsWith(“*/“)) {
commentLines ++;
comment = true;
} else if (str.startsWith(“/*“) && str.endsWith(“*/“)) {
commentLines ++;
} else if (true == comment) {
commentLines ++;
if(str.endsWith(“*/“)) {
comment = false;
}
} else if (str.startsWith(“//“)) {
commentLines ++;
} else {
normalLines ++;
}
}
tarea.setFont(new Font(“黑体“Font.BOLD32));
tarea.append(“空白行数“+whiteLines + ‘\n‘+“注释行数“+commentLines+‘\n‘+“代码有效行数“+normalLines+‘\n‘+“代码总行数“+totalLines);//文本框添加读取的文件内容
fr.close();//关闭读取
} catch (Exception e1) {//如果有错误,这里进行处理
JOptionPane.showMessageDialog(null “请输入统计文件!!!“ “错误提示“ JOptionPane.INFORMATION_MESSAGE);
//JOptionPane.showMessageDialog(null “文字“ “标题“ JOptionPane.QUESTION_MESSAGE);
e1.printStackTrace();//打印错误信息
}

}

if (e.getSource() == btn2) {//按钮1事件处理
sv.setVisible(true);
try {
File f1 = new File(sv.getDirectory() sv.getFile());
FileWriter fw = new FileWriter(f1);
BufferedWriter bw = new BufferedWriter(fw);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2013-06-23 01:29  software enginnering  demo\
     目录           0  2013-06-22 02:27  software enginnering  demo\CodeCount\
     文件        4469  2013-06-22 02:20  software enginnering  demo\CodeCounter.jar
     文件         301  2013-06-22 00:02  software enginnering  demo\CodeCount\.classpath
     文件         385  2013-06-22 00:02  software enginnering  demo\CodeCount\.project
     目录           0  2013-06-22 02:27  software enginnering  demo\CodeCount\.settings\
     文件         629  2013-06-22 00:02  software enginnering  demo\CodeCount\.settings\org.eclipse.jdt.core.prefs
     目录           0  2013-06-22 02:27  software enginnering  demo\CodeCount\bin\
     目录           0  2013-06-22 02:27  software enginnering  demo\CodeCount\bin\counter\
     文件         450  2013-06-22 01:46  software enginnering  demo\CodeCount\bin\counter\jtxtfm.class
     文件         684  2013-06-22 01:46  software enginnering  demo\CodeCount\bin\counter\jtxtfrm$1.class
     文件        4401  2013-06-22 01:46  software enginnering  demo\CodeCount\bin\counter\jtxtfrm.class
     目录           0  2013-06-22 02:27  software enginnering  demo\CodeCount\src\
     目录           0  2013-06-22 02:27  software enginnering  demo\CodeCount\src\counter\
     文件        3557  2013-06-22 01:46  software enginnering  demo\CodeCount\src\counter\jtxtfm.java
     文件          43  2013-06-22 02:16  software enginnering  demo\run.bat

评论

共有 条评论

相关资源