java语言实验报告,Java语言 实验报告(二)
实验报告(二)
实验目的
熟悉 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语言 实验报告(二)相关推荐
- java集成r语言_R语言- 实验报告 - 利用R语言脚本与Java相互调用
一.实训内容 利用R语言对Java项目程序进行调用,本实验包括利用R语言对java的.java文件进行编译和执行输出. 在Java中调用R语言程序.本实验通过eclipse编写Java程序的方式,调用 ...
- java继承机制实验报告_JAVA继承实验报告.doc
JAVA继承实验报告 JAVA语言程序设计 实验报告 实验一 实验题目: 面 向 对 象 编 程 指导老师: 卢照 专业班级:计算机科学与技术系1106班 姓 名:*****) 2014年3月20日 ...
- 面对对象课程设计报告java,面向对象编程 JAVA编程综合实验报告.doc
PAGE \* MERGEFORMAT 20 成绩: JAVA编程B综合实验报告 实验名称:面向对象编程 实验时间:2012年 5月 31日星期四 JAVA编程B综合实验报告 一.实验名称 面向对象编 ...
- 银行家算法实验报告c语言版,银行家算法实验报告C语言版.doc
<操作系统>课程综合性实验报告 姓名: 学号: 2016 年 11 月 20 日 实验题目进程调度算法程序设计一.实验目的 通过对安全性算法和银行家算法的模拟,进一步理解资源分配的基本概念 ...
- 实验一 java基础编程(预习报告)
面向对象--Java实验报告 实验一:Java基础编程 实验一 java基础编程(预习报告) <center> <strong>姓名:</strong> <u ...
- c 语言构造函数的实验报告,c上机实验报告_相关文章专题_写写帮文库
时间:2019-05-12 07:35:41 作者:admin 第二次上机实验报告 姓名:王小宁班级:学号: 031012 1234 第一题: 题目: 编写一个类,声明一个数据成员和一个静态数据成员, ...
- java综合实训报告_java综合实验报告1.doc
java综合实验报告1 数学与计算机学院 实 验 报 告 课程名称JAVA语言程序设计 课程代码 任课教师周立章指导教师周立章学生姓名郭春艳学 号312008080611123年 级2008专 业软件 ...
- c语言实现页面调度算法实验报告,c语言实现调度算法程序设计实验报告-先来先服务fcfs.docx...
c语言实现调度算法程序设计实验报告-先来先服务fcfs 实验报告 <操作系统>课程综合性实验报告 课程设计报告 课程设计题目:先来先服务(FCFS)调度算法模拟 专业:计算机科学与技术班级 ...
- Java模式设计卖电脑实验报告_20145310《Java程序设计》第2次实验报告
20145310<Java程序设计>第2次实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计 ...
- java模拟洗衣机程序,java洗衣机仿真程序实验报告及代码.doc
java洗衣机仿真程序实验报告及代码.doc 11.实验题目:用java编写洗衣机仿真程序2.实验目的:1.熟悉并掌握洗衣机(全自动)的工作原理和运行过程.2.学会软件工程设计中的一系列分析研究,对需 ...
最新文章
- java list 两个集合比较 不存在则新增 存在修改_Java之集合
- 怎样在谷歌浏览器上加载金山词霸的取词插件?
- 【Mac】安装 tesserocr 遇到的一些坑(‘cinttypes' file not found)
- html锚点反向联动,小程序菜单左右联动
- Pytorch模型构造方法
- MATLAB调用OpenCV流程(MATLAB R2016a+OpenCV3.1.0+VS2010
- 49个Excel常用技巧
- 阿里云0元注册域名 云服务有了免费入口
- 渥太华大学计算机科学,【加拿大渥太华大学计算机科学排名第四】渥太华大学录取条件...
- 软件设计师2018上半年+历年资料
- 互联网广告算法和系统实践-读书笔记
- c语言topic函数,ROS学习笔记(一) 话题topic的定义与使用(publisher 和 subscriber)
- zznu-2025 简单环路
- 添加Onvif设备到Blue IRIS步骤
- 这个世界的本源不是物质,而是物质背后的基本秩序-柏拉图
- linux用户和组的权限管理
- kotlin使用StateFlow的collect出错This is an internal kotlinx.coroutines API
- godaddy生成https 域名证书
- python实现简单舒尔方格
- 快来Pick你喜欢的可爱符号