实验报告(二)

实验目的

熟悉 Java 图形界面的基本设计。

熟悉 Java 界面的菜单使用方法。

熟悉 Java 的多线程应用程序开发方法。

实验任务 1

编写 Java 应用程序,实现以下登陆界面(需注意密码框输入的内容不显示明文)

实验源代码

package com.science.sc2.No1;

import java.awt.*;

import java.awt.event.WindowEvent;

import java.awt.event.WindowListener;

public class Main {

public static void main(String[] args) {

Frame frame = new Frame("登陆");

frame.setSize(400,300);

frame.setVisible(true);

//添加监听器,点击右上角的X后关闭按钮

frame.addWindowListener(new WindowListener() {

@Override

public void windowOpened(WindowEvent e) {

}

@Override

public void windowClosing(WindowEvent e) {

frame.dispose();

}

@Override

public void windowClosed(WindowEvent e) {

}

@Override

public void windowIconified(WindowEvent e) {

}

@Override

public void windowDeiconified(WindowEvent e) {

}

@Override

public void windowActivated(WindowEvent e) {

}

@Override

public void windowDeactivated(WindowEvent e) {

}

});

frame.setLayout(null);

Label l1 = new Label("用户名:");

Label l2 = new Label("密 码:");

TextField username = new TextField(30);

TextField password = new TextField(30);

Button btn = new Button("确定");

frame.add(l1);

frame.add(l2);

frame.add(username);

frame.add(password);

frame.add(btn);

l1.setBounds(50,80,60,20);

username.setBounds(110,80,200,20);

l2.setBounds(50,120,60,20);

password.setBounds(110,120,200,20);

btn.setBounds(160,160,80,40);

password.setEchoChar('*'); //设置回显字符

frame.setLocationRelativeTo(null); //默认显示在正中间

}

}

实验运行截图

实验任务2

编写 Java 应用程序,实现以下界面:

实验源代码

package com.science.sc2.No2;

import java.awt.*;

import java.awt.event.WindowEvent;

import java.awt.event.WindowListener;

public class Main {

public static void main(String[] args) {

Frame frame = new Frame("Menu");

frame.setSize(400,300);

frame.setVisible(true);

//添加监听器,点击右上角的X后关闭按钮

frame.addWindowListener(new WindowListener() {

@Override

public void windowOpened(WindowEvent e) {

}

@Override

public void windowClosing(WindowEvent e) {

frame.dispose();

}

@Override

public void windowClosed(WindowEvent e) {

}

@Override

public void windowIconified(WindowEvent e) {

}

@Override

public void windowDeiconified(WindowEvent e) {

}

@Override

public void windowActivated(WindowEvent e) {

}

@Override

public void windowDeactivated(WindowEvent e) {

}

});

frame.setLayout(null);

frame.setLocationRelativeTo(null); //默认显示在正中间

MenuBar menuBar = new MenuBar();

frame.setMenuBar(menuBar);

Menu menu1 = new Menu("File");

Menu menu2 = new Menu("Format");

Menu menu3 = new Menu("Help");

menuBar.add(menu1);

menuBar.add(menu2);

menuBar.add(menu3);

Menu menu22 = new Menu("进制");

menu2.add(new MenuItem("中文"));

menu2.add(menu22);

menu22.add(new CheckboxMenuItem("二进制"));

menu22.add(new CheckboxMenuItem("八进制"));

menu22.add(new CheckboxMenuItem("十进制"));

}

}

实验运行截图

实验任务 3

编写一个 Java 多线程应用程序,完成三个售票窗口同时出售 20 张票。具体要求如下:

票数要使用同一个静态值;

为保证不会出现卖出同一个票数,要 java 多线程同步锁。

设计思路:

创建一个站台类 Station,继承 Thread,重写 run 方法,在 run 方法里面执行售票操作。

售票要使用同步锁:即有一个站台卖这张票时,其他站台要等这张票卖完。

创建主方法调用类。

运行效果参考下图:

实验源代码

package com.science.sc2.No3;

public class Main {

public static final int DEFAULT_TICKET = 20;

public static final int DEFAULT_STATION = 3;

public static int ticket = 1;

public static int station = DEFAULT_STATION;

public static class Station extends Thread{

@Override

public void run() {

while(true){

synchronized (Main.class){

if(ticket <= DEFAULT_TICKET){

System.out.println(this.getName() + "卖出了第" + (ticket++) + "张票");

if(ticket > DEFAULT_TICKET){

System.out.println("票卖完了!");

}

}else{

break;

}

}

try {

Thread.sleep(50);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

public Station(String name) {

super(name);

}

}

public static void main(String[] args) {

for (int i = 1; i <= station; i++) {

new Station("窗口" + i).start();

}

}

}

实验运行截图

标签:Java,语言,frame,void,WindowEvent,Override,new,实验报告,public

来源: https://blog.csdn.net/qq_45740349/article/details/113783660

java语言实验报告,Java语言 实验报告(二)相关推荐

  1. java集成r语言_R语言- 实验报告 - 利用R语言脚本与Java相互调用

    一.实训内容 利用R语言对Java项目程序进行调用,本实验包括利用R语言对java的.java文件进行编译和执行输出. 在Java中调用R语言程序.本实验通过eclipse编写Java程序的方式,调用 ...

  2. java继承机制实验报告_JAVA继承实验报告.doc

    JAVA继承实验报告 JAVA语言程序设计 实验报告 实验一 实验题目: 面 向 对 象 编 程 指导老师: 卢照 专业班级:计算机科学与技术系1106班 姓 名:*****) 2014年3月20日 ...

  3. 面对对象课程设计报告java,面向对象编程 JAVA编程综合实验报告.doc

    PAGE \* MERGEFORMAT 20 成绩: JAVA编程B综合实验报告 实验名称:面向对象编程 实验时间:2012年 5月 31日星期四 JAVA编程B综合实验报告 一.实验名称 面向对象编 ...

  4. 银行家算法实验报告c语言版,银行家算法实验报告C语言版.doc

    <操作系统>课程综合性实验报告 姓名: 学号: 2016 年 11 月 20 日 实验题目进程调度算法程序设计一.实验目的 通过对安全性算法和银行家算法的模拟,进一步理解资源分配的基本概念 ...

  5. 实验一 java基础编程(预习报告)

    面向对象--Java实验报告 实验一:Java基础编程 实验一 java基础编程(预习报告) <center> <strong>姓名:</strong> <u ...

  6. c 语言构造函数的实验报告,c上机实验报告_相关文章专题_写写帮文库

    时间:2019-05-12 07:35:41 作者:admin 第二次上机实验报告 姓名:王小宁班级:学号: 031012 1234 第一题: 题目: 编写一个类,声明一个数据成员和一个静态数据成员, ...

  7. java综合实训报告_java综合实验报告1.doc

    java综合实验报告1 数学与计算机学院 实 验 报 告 课程名称JAVA语言程序设计 课程代码 任课教师周立章指导教师周立章学生姓名郭春艳学 号312008080611123年 级2008专 业软件 ...

  8. c语言实现页面调度算法实验报告,c语言实现调度算法程序设计实验报告-先来先服务fcfs.docx...

    c语言实现调度算法程序设计实验报告-先来先服务fcfs 实验报告 <操作系统>课程综合性实验报告 课程设计报告 课程设计题目:先来先服务(FCFS)调度算法模拟 专业:计算机科学与技术班级 ...

  9. Java模式设计卖电脑实验报告_20145310《Java程序设计》第2次实验报告

    20145310<Java程序设计>第2次实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计 ...

  10. java模拟洗衣机程序,java洗衣机仿真程序实验报告及代码.doc

    java洗衣机仿真程序实验报告及代码.doc 11.实验题目:用java编写洗衣机仿真程序2.实验目的:1.熟悉并掌握洗衣机(全自动)的工作原理和运行过程.2.学会软件工程设计中的一系列分析研究,对需 ...

最新文章

  1. java list 两个集合比较 不存在则新增 存在修改_Java之集合
  2. 怎样在谷歌浏览器上加载金山词霸的取词插件?
  3. 【Mac】安装 tesserocr 遇到的一些坑(‘cinttypes' file not found)
  4. html锚点反向联动,小程序菜单左右联动
  5. Pytorch模型构造方法
  6. MATLAB调用OpenCV流程(MATLAB R2016a+OpenCV3.1.0+VS2010
  7. 49个Excel常用技巧
  8. 阿里云0元注册域名 云服务有了免费入口
  9. 渥太华大学计算机科学,【加拿大渥太华大学计算机科学排名第四】渥太华大学录取条件...
  10. 软件设计师2018上半年+历年资料
  11. 互联网广告算法和系统实践-读书笔记
  12. c语言topic函数,ROS学习笔记(一) 话题topic的定义与使用(publisher 和 subscriber)
  13. zznu-2025 简单环路
  14. 添加Onvif设备到Blue IRIS步骤
  15. 这个世界的本源不是物质,而是物质背后的基本秩序-柏拉图
  16. linux用户和组的权限管理
  17. kotlin使用StateFlow的collect出错This is an internal kotlinx.coroutines API
  18. godaddy生成https 域名证书
  19. python实现简单舒尔方格
  20. 快来Pick你喜欢的可爱符号

热门文章

  1. 2021-03-30 严反馈系统
  2. 树莓派工程设计常见问题与处理
  3. 【52】写了placement new也要写placement delete
  4. 廖雪峰python学习笔记——函数式编程
  5. 「Java Web」主页静态化的实现
  6. 使用myeclipse创建带注解的model实体类
  7. 内联函数与普通函数、成员函数与静态函数的区别(知识整理)
  8. oracle自动选择索引
  9. python_Day5_web开发(下)
  10. unity_小功能实现(敌人巡逻功能)