实 验 报 告

( 2017 / 2018学年 第2学期)

课程名称

JAVA语言程序设计

实验名称

Java集成开发环境的安装与使用、

Java变量、表达式与控制结构

实验时间

2018

6

7

指导单位

计算机学院软件教学中心

指导教师

许棣华

学生姓名

王利国

班级学号

B160209

学院(系)

电子与光学工程学院,微电子学院

专    业

微电子科学与工程

实验名称

方法、数组和类

指导教师

许棣华

实验类型

上机

实验学时

2

实验时间

2017.6.7

一、    实验目的

1. 了解和掌握Java中GUI组件和界面化设计

2. 掌握Java中创建线程对象的方法

3. 熟悉控制线程状态的过程

二、实验环境(实验设备)

1. 每位学生配备计算机一台

2. 计算机需安装好JDK和Jcreator

三、实验内容

1. 编写一个Applet,利用两个文本框对象input1和input2,接收用户从键盘输入的两个整型数。当用户单击“计算”按钮时,可进行算术计算,并输出运算结果;运算结果放在多行文本域JTextArea组件中。GUI界面参考教材198页9.6题。

package swing;

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; /**
* @Author liguo
* @Description
* @Data 2018-06-04 20:06
*/
public class Test {
public static void main(String[] args) {
// 创建 JFrame 实例
JFrame frame = new JFrame( "四则运算" );
frame.setSize( 350, 300 );
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); /* 创建面板,这个类似于 HTML 的 div 标签
* 我们可以创建多个面板并在 JFrame 中指定位置
* 面板中我们可以添加文本字段,按钮及其他组件。
*/
JPanel panel = new JPanel();
//添加面板
frame.add( panel );
/*
* 调用用户定义的方法并添加组件到面板
*/
placeComponents( panel ); // 设置界面可见
frame.setVisible( true );
} private static void placeComponents(JPanel panel) { panel.setLayout( null ); // 创建 JLabel
JLabel firstLabel = new JLabel( "第一个数为" );
/* 这个方法定义了组件的位置。
* setBounds(x, y, width, height)
* x 和 y 指定左上角的新位置,由 width 和 height 指定新的大小。
*/
firstLabel.setBounds( 10, 20, 80, 25 );
panel.add( firstLabel ); //field
JTextField firstNumber = new JTextField( 20 );
firstNumber.setBounds( 100, 20, 165, 25 );
panel.add( firstNumber ); // 输入的文本域
JLabel secondlabe2 = new JLabel( "第二个数字" );
secondlabe2.setBounds( 10, 50, 80, 25 );
panel.add( secondlabe2 ); /**
* 第二个数字的输入
*/ JTextField secondNumber = new JTextField( 20 );
secondNumber.setBounds( 100, 50, 165, 25 );
panel.add( secondNumber ); // 创建计算按钮
JButton loginButton = new JButton( "计算" );
loginButton.setBounds( 10, 80, 80, 25 );
panel.add( loginButton ); //添加页面输出
JTextArea area = new JTextArea();
area.setBounds( 100, 110, 165, 100 );
panel.add( area ); loginButton.addActionListener( new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int a = Integer.parseInt( firstNumber.getText() );
int b = Integer.parseInt( secondNumber.getText() );
String str = "和为" + (a + b) +
"\n差为" + (a - b) +
"\n积为" + (a * b) +
"\n商为" + (a / b);
area.append( str );
}
} ); }
}

2. 编写一个应用程序,设计4个按钮,分别命名为“加”、“减”、“乘”、“除”,有3个文本框。单击相应的按钮,将两个文本框的数字做运算,在第三个文本框中显示结果。

package swing;

/**
* @Author liguo
* @Description 设计4个按钮,分别命名为“加”、“减”、“乘”、“除”,另外,窗口中还有3个文本框。
* 单击相应的按钮,将两个文本框的数字做运算,在第三个文本框中显示结果。要求处理NumberFormatException异常。
* @Data 2018-06-29 20:34
*/
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField; public class Caculate extends JFrame implements ActionListener {
JButton jia;
JButton jian;
JButton cheng;
JButton chu;
JTextField one;
JTextField two;
JTextField three;
JLabel label; public Caculate() {
init();
setVisible(true);
setResizable(true);
validate();
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
} public void init() {
setLayout(new FlowLayout());
setSize(300, 320);
setTitle("计算");
jia = new JButton("加");
jian = new JButton("减");
cheng = new JButton("乘");
chu = new JButton("除");
one = new JTextField(10);
two = new JTextField(10);
three = new JTextField(10);
label = new JLabel(" ", JLabel.CENTER);
label.setBackground(Color.green);
add(one);
add(label);
add(two);
add(three);
add(jia);
add(jian);
add(cheng);
add(chu);
jia.addActionListener(this);
jian.addActionListener(this);
cheng.addActionListener(this);
chu.addActionListener(this); } @Override
public void actionPerformed(ActionEvent e) {
double n;
if (e.getSource() == jia) {
double n1, n2;
try {
n1 = Double.parseDouble(one.getText());
n2 = Double.parseDouble(two.getText());
n = n1 + n2;
three.setText(String.valueOf(n));
label.setText("+");
} catch (NumberFormatException ee) {
three.setText("请输入数字字符");
}
} else if (e.getSource() == jian) {
double n1, n2;
try {
n1 = Double.parseDouble(one.getText());
n2 = Double.parseDouble(two.getText());
n = n1 - n2;
three.setText(String.valueOf(n));
label.setText("-");
} catch (NumberFormatException ee) {
three.setText("请输入数字字符");
}
} else if (e.getSource() == cheng) {
double n1, n2;
try {
n1 = Double.parseDouble(one.getText());
n2 = Double.parseDouble(two.getText());
n = n1 * n2;
three.setText(String.valueOf(n));
label.setText("*");
} catch (NumberFormatException ee) {
three.setText("请输入数字字符");
}
} else if (e.getSource() == chu) {
double n1, n2;
try {
n1 = Double.parseDouble(one.getText());
n2 = Double.parseDouble(two.getText());
n = n1 / n2;
three.setText(String.valueOf(n));
label.setText("/");
} catch (NumberFormatException ee) {
three.setText("请输入数字字符");
}
}
validate();
} public static void main(String[] args) {
Caculate test = new Caculate();
}
}

//那个用JFormDesigner插件是好写 ,就是生成的代码量太多了,现在这个是重写的;

3. 编写一个有两个线程的程序,第一个线程用来计算2~100000之间的质数及个数,第二个线程用来计算100000~200000之间的质数及个数。

package swing;

/**
* @Author liguo
* @Description
* @Data 2018-06-07 9:26
*/
public class Thread extends java.lang.Thread { public static void run(int min, int max) {
int i, j;
for (i = min; i <= max; i++) {
for (j = 2; j < (int) Math.sqrt( i ); j++) {
if (i % j == 0)
break;
else
System.out.print( i );
count++;
}
System.out.println( min + " " + max + ":" + count );
}
} private int min, max;
private static int count = 0; public static void main(String[] args) {
Thread t1 = new Thread();
Thread t2 = new Thread();
t1.run( 2, 100000 );
t2.run( 100000, 20000 );
}
}

四、实验小结(包括问题和解决方法、心得体会等)

1:此次实验加深了自己对于swing的使用,尤其是几种布局的格式,以及控件按钮方法的书写。学会了通过插件JFormDesigner来写Swing界面做类似计算器的东西。

2:学习了用线程来写控制程序。

五、指导教师评语

成  绩

批阅人

日  期

                            

南京邮电大学java第四次实验报告的更多相关文章

  1. 南京邮电大学java第三次实验报告

    实 验 报 告 ( 2017 / 2018学年 第2学期) 课程名称 JAVA语言程序设计 实验名称 Java集成开发环境的安装与使用. Java变量.表达式与控制结构 实验时间 2018 年 4 月 ...

  2. 南京邮电大学java第一次实验报告

    实 验 报 告 ( 2017 / 2018学年 第2学期) 课程名称 JAVA语言程序设计 实验名称 Java集成开发环境的安装与使用. Java变量.表达式与控制结构 实验时间 2018 年 4 月 ...

  3. 南京邮电大学java第二次实验报告

    实 验 报 告 ( 2017 / 2018学年 第2学期) 课程名称 JAVA语言程序设计 实验名称 Java集成开发环境的安装与使用. Java变量.表达式与控制结构 实验时间 2018 年 4 月 ...

  4. java第四次实验报告

    课程:Java程序与设计     班级:1352 姓 名:池彬宁  小组成员: 20135212池彬宁 20135208贺邦 学号:20135212 成绩:             指导教师:娄嘉鹏  ...

  5. 南京邮电大学java程序设计作业在线编程第四次作业

    王利国的的 "Java语言程序设计第4次作业(2018)" 详细 主页 我的作业列表 作业结果详细 总分:100 选择题得分:40  1.下列方法定义中,正确的是() A.doub ...

  6. 南京邮电大学java程序设计作业在线编程第五次作业

    王利国的"Java语言程序设计第5次作业(2018)"详细 主页 我的作业列表 作业结果详细 总分:100 选择题得分:50  1. 以下哪一个工具是Java的编译器?( ) A. ...

  7. 南京邮电大学java程序设计作业在线编程第三次作业

    王利国的"Java语言程序设计第3次作业(2018)"详细 作业结果详细 总分:100 选择题得分:60  1. 设有如下定义语句: String s1="My cat& ...

  8. 南京邮电大学java程序设计作业在线编程第二次作业

    王利国的"Java语言程序设计第2次作业(2018)"详细 作业结果详细 总分:100 选择题得分:60  1. 表达式9==8&&3<7的运算结果是( ) ...

  9. 南京邮电大学java程序设计作业在线编程第一次作业

    王利国的"Java语言程序设计第1次作业(2018)"详细 作业结果详细 总分:100 选择题得分:40  1. Java语言中,基本数据类型一共有( )种. A.16 B.2 C ...

随机推荐

  1. [Swift]LeetCode452. 用最少数量的箭引爆气球 | Minimum Number of Arrows to Burst Balloons

    There are a number of spherical balloons spread in two-dimensional space. For each balloon, provided ...

  2. Python爬虫入门教程 19-100 51CTO学院IT技术课程抓取

    写在前面 从今天开始的几篇文章,我将就国内目前比较主流的一些在线学习平台数据进行抓取,如果时间充足的情况下,会对他们进行一些简单的分析,好了,平台大概有51CTO学院,CSDN学院,网易云课堂,慕课网 ...

  3. 无法使用 xxxx附加到应用程序

    以管理员运行cmd,输入netsh   winsock   reset ,重启电脑,OK. 出现这个错误的原因一般是因为游戏的缘由,本人亲测.

  4. [工具向]__关于androidstudio工具使用过程中学习到的一些知识点简记

    前言 在我学习android开发课程的过程中,我们通常只会关注编程语言上面的一些知识点与问题,而忽略了开发工具的使用上的一些遇到的一些知识,其实每一款IDE工具都是集编程语言大成而开发出来的,其中有很 ...

  5. Python编写守护进程程序

    Python编写守护进程程序思路 1. fork子进程,父进程退出通常,我们执行服务端程序的时候都会通过终端连接到服务器,成功连接后会加载shell环境,终端和shell都是进程,shell进程是终端 ...

  6. centos7 修改yum源为阿里源

    centos7 修改yum源为阿里源,某下网络下速度比较快 首先是到yum源设置文件夹里 安装base reop源 cd /etc/yum.repos.d 接着备份旧的配置文件 sudo mv Cen ...

  7. C++STL模板库适配器之queue队列

    目录 适配器之队列 一丶队列简介 二丶队列(queue)代码操作 1.常用方法 适配器之队列 一丶队列简介 队列是先进先出的数据结构. 在STL中使用 queue表示. 底层使用的是序列容器deque ...

  8. C++STL模板库序列容器之vector

    目录 STL之Vecter 一丶STL简介 二丶Vector用法 1.vector容器的使用 2.vector迭代器. 3.vector中的方法. 三丶常用算法 1.常见算法中的算法方法. 2.sor ...

  9. PE知识复习之PE文件空白区添加代码

    PE知识复习之PE文件空白区添加代码 一丶简介 根据上面所讲PE知识.我们已经可以实现我们的一点手段了.比如PE的入口点位置.改为我们的入口位置.并且填写我们的代码.这个就是空白区添加代码. 我们也可 ...

  10. SSH学习

    简介 SSH或Secure Shell是一种远程管理协议,允许用户通过Internet控制和修改远程服务器.该服务是作为未加密Telnet的安全替代品创建的,它使用加密技术确保与远程服务器之间的所有通 ...