栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

中级-实训Part1

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

中级-实训Part1

HelloWorld的编译,部署,测试
  • 运行build.xml前的目录结构:
|__calculator
   |__HelloWorld
      |__Ant
         |__src
            |__HelloWorld.java
         |__build.xml            
      |__Junit
         |__HelloWorld.java
         |__HelloWorldTest.java
         |__junit-4.9.jar
   |__Calculator
   	  |__...
   |__README.md
  • 运行build.xml后的目录结构:
|__calculator
   |__HelloWorld
      |__Ant
         |__src
            |__HelloWorld.java
         |__build
      		|__classes
      		   |__HelloWorld.class
         |__build.xml   
         |__helloworld.jar         
      |__Junit
         |__HelloWorld.java
         |__HelloWorldTest.java
         |__junit-4.9.jar
   |__Calculator
   	  |__...
   |__README.md
  • Junit测试后的目录结构:
|__calculator
   |__HelloWorld
      |__Ant
         |__src
            |__HelloWorld.java
         |__build
      		|__classes
      		   |__HelloWorld.class
         |__build.xml   
         |__helloworld.jar         
      |__Junit
         |__HelloWorld.java
         |__HelloWorldTest.java
         |__junit-4.9.jar
         |__HelloWorld.class
         |__HelloWorldTest.class
   |__Calculator
   	  |__...
   |__README.md
Calculator(简单计算器) 要求
  1. 例图:

  1. 当点击含有加号的按钮时,则第一排第二个按钮的文本变为加号;
  2. 当点击“OK”按钮时,将算出12+2的结果并在第一排最后一个按钮显示;
  3. 减号,乘号,除号的功能类似。其中,数字可以自己输入,也可以固定不变。
实现
import javax.swing.*;
import java.awt.GridLayout;
import java.awt.event.*;

public class Calculator extends Jframe{
	public Calculator() {
		JPanel panel = new JPanel();	// 面板容器
		panel.setLayout(new GridLayout(2,5));	// 两行五列		
		
		// 初始化两个数,用文本框输入,输入居中
		JTextField num1 = new JTextField("12");
		num1.setHorizontalAlignment(JTextField.CENTER);
		JTextField num2 = new JTextField("2");
		num2.setHorizontalAlignment(JTextField.CENTER);
		// 运算符
		JTextField op = new JTextField("");
		op.setHorizontalAlignment(JTextField.CENTER);
		op.setEditable(false);	
		// 等于号
		JTextField equal = new JTextField("=");
		equal.setHorizontalAlignment(JTextField.CENTER);
		equal.setEditable(false);
		// 运算结果	
		JTextField res = new JTextField("");
		res.setHorizontalAlignment(JTextField.CENTER);
		res.setEditable(false);
		// 加减乘除
		JButton add = new JButton("+");
		JButton sub = new JButton("-");
		JButton mul = new JButton("*");
		JButton div = new JButton("/");
		// 计算
		JButton ok = new JButton("ok");

		// 依次将元素加入到面板容器中
		panel.add(num1); 
		panel.add(op);
		panel.add(num2);  
	    panel.add(equal);
	    panel.add(res);
		panel.add(add);  
	    panel.add(sub);  
	    panel.add(mul);  
	    panel.add(div);
	    panel.add(ok);
		// 将面板容器加入到窗口中
	    add(panel);

		setBounds(800, 300, 600, 250);	// 设置窗口尺寸和位置	
		setTitle("Easy Calculator");	// 设置标题	

		// 监听ok按钮,监听到则根据运算符进行计算
	    ActionListener okButton = new ActionListener() {
			public void actionPerformed(ActionEvent e){
				double n1 = Double.parseDouble(num1.getText());
				double n2 = Double.parseDouble(num2.getText());
				
				if(op.getText().equals("+")){
					res.setText("" + (n1 + n2));
				}
				if(op.getText().equals("-")){
					res.setText("" + (n1 - n2));
				}
				if(op.getText().equals("*")){
					res.setText("" + (n1 * n2));
				}
				if(op.getText().equals("/")){
					res.setText("" + (n1 / n2));
				}
			}
		};
		// 监听运算符按钮按钮,监听到则设置op
		ActionListener opButton = new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				op.setText(((JButton)e.getSource()).getText());
			}
		};
		
	    // 给按钮增加监听动作
	    add.addActionListener(opButton);
	    sub.addActionListener(opButton);
	    mul.addActionListener(opButton);
	    div.addActionListener(opButton);
	    ok.addActionListener(okButton);

		// 显示窗口
		setVisible(true);
		// 退出窗口
		setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);	
	}

	// 程序入口
	public static void main(String[] args) {
		new Calculator();
	}
} 
效果图

Calculator的编译,部署,测试
  • 运行build.xml前的目录结构:
|__calculator
   |__HelloWorld
      |__...
   |__Calculator
      |__Ant
         |__src
            |__Calculator.java
         |__build.xml
      |__Junit
         |__...
      |__SonarQube
         |__...
   |__README.md
  • 运行build.xml后的目录结构:
|__calculator
   |__HelloWorld
      |__...
   |__Calculator
   	  |__Ant
         |__src
            |__Calculator.java
         |__build
      	    |__classes
      		   |__HelloWorld.class
         |__build.xml
         |__calculator.jar
      |__Junit
         |__...
      |__SonarQube
         |__...
   |__README.md
  • Junit测试前的目录结构:
|__calculator
   |__HelloWorld
      |__...
   |__Calculator
   	  |__Ant
         |__...
      |__Junit
         |__Calculator.java
         |__CalculatorTest.java
         |__junit-4.9.jar
      |__SonarQube
         |__...
   |__README.md
  • Junit测试后的目录结构:
|__calculator
   |__HelloWorld
      |__...
   |__Calculator
   	  |__Ant
         |__...
      |__Junit
         |__Calculator.java
         |__CalculatorTest.java
         |__junit-4.9.jar
         |__Calculator.class
         |__Calculator$1.class
         |__Calculator$2.class
         |__CalculatorTest.class
      |__SonarQube
         |__...
   |__README.md
SonarQube
  • 简介
    Sonar 是一个用于代码质量管理的开源平台,用于管理源代码的质量,可以从七个维度检测代码质量。

  • 用途

  1. 展示代码的复杂度分布。
  2. 展示源码中严重重复的地方。
  3. 可以很方便地统计并展示单元测试覆盖率。
  4. 可以通过 PMD,CheckStyle,Findbugs 等等代码规则检测工具规范代码编写。
  5. 展示注释量。
  6. 可以通过 PMD,CheckStyle,Findbugs 等等代码规则检测工具检测出潜在的 bug。
  7. 可以找出循环,展示包与包、类与类之间的相互依赖关系;可以检测自定义的架构规则;可以管理第三方的 jar 包;可以利用 LCOM4 检测单个任务规则的应用情况;检测耦合。
  • 配置环境(在/etc/profile末尾添加以下路径,此时为临时路径,每次重新打开终端后若要使用都要先执行命令 source /etc/profile)
export SONAR_HOME=/home/zhaowx9/桌面/sonar-3.7.4/bin/linux-x86-64
export SONAR_RUNNER_HOME=/home/zhaowx9/桌面/sonar-runner-2.4
export PATH=$SONAR_RUNNER_HOME/bin:$PATH
  • 启动sonar服务

  • 在任何目录下都可执行sonar-runner

使用SonarQube分析Calculator
  • 目录结构
|__calculator
   |__HelloWorld
      |__...
   |__Calculator
   	  |__Ant
         |__...
      |__Junit
         |__...
      |__SonarQube
         |__src
            |__Calculator.java
         |__sonar-project.properties
   |__README.md
  • sonar-project.properties
sonar.projectKey=src
sonar.projectName=src
sonar.projectVersion=1.0
sonar.projectEncoding=UTF-8
sonar.modules=java-module

java-module.sonar.projectName=Java Module
java-module.sonar.language=java

java-module.sonar.sources=.
java-module.sonar.projectbaseDir=src
  • 开启sonar服务并sonar-runner

  • 打开 http://localhost:9000/

  • 查看src的代码情况

运行 BugRunner
  • 进入文件夹 firstProject

  • 执行命令
javac -classpath .:./../../gridworld.jar BugRunner.java
java -classpath .:./../../gridworld.jar BugRunner

  • 运行结果

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/346397.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号