JAVA语言实验 实验 ( 二 )

news2024/12/25 9:18:17

JAVA语言实验 :实验 ( 一 )
JAVA语言实验 :实验 ( 二 )
JAVA语言实验 :实验 ( 三 )

一、实验目的

(1)熟悉 Java 图形界面的基本设计。
(2)熟悉 Java 界面的菜单使用方法。
(3)熟悉 Java 的多线程应用程序开发方法。

二、实验任务

实验务 任务 1

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

在这里插入图片描述

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
 * @imb.zz
 * @creat2022
 */
public class main {
    public static void main(String[] args) {
        //创建窗口
        JFrame meun = new JFrame("Meun");
        //窗口位置
        meun.setLocation(300,300);
        //窗口大小
        meun.setSize(1000,600);
        //插入横框
        JMenuBar MenuBar = new JMenuBar();
        //插入一级菜单
        meun.setJMenuBar(MenuBar);
        JMenu meun_file = new JMenu("File");
        JMenu meun_format = new JMenu("Format");
        JMenu meun_help = new JMenu("Help");
        MenuBar.add(meun_file);
        MenuBar.add(meun_format);
        MenuBar.add(meun_help);
        //一级框大小
        MenuBar.setSize(100,1000);
        meun_file.setFont(new Font("正楷",Font.BOLD, 44));
        meun_format.setFont(new Font("正楷",Font.BOLD, 44));
        meun_help.setFont(new Font("正楷",Font.BOLD, 44));
        //插入二级列框
        JMenu meun_file_Chinese = new JMenu("中文");
        JMenu meun_file_Base = new JMenu("进制");
        meun_format.add(meun_file_Chinese);
        meun_format.add(meun_file_Base);
        //二级框字体大小
        meun_file_Chinese.setFont(new Font("正楷",Font.BOLD, 30));
        meun_file_Base.setFont(new Font("正楷",Font.BOLD, 30));
        //插入三级列框
        JMenuItem binary = new JMenuItem("二进制");
        JMenuItem Octal = new JMenuItem("八进制");
        JMenuItem hexadecimal = new JMenuItem("十六进制");
        meun_file_Base.add(binary);
        meun_file_Base.add(Octal);
        meun_file_Base.add(hexadecimal);
        //三级框大小
        binary.setFont(new Font("正楷",Font.BOLD, 30));
        Octal.setFont(new Font("正楷",Font.BOLD, 30));
        hexadecimal.setFont(new Font("正楷",Font.BOLD, 30));
        //结束
        meun.setVisible(true);
    }
}

实验务 任务 2

编写 Java 应用程序,实现以下界面:
在这里插入图片描述

public class Main {
    public static void main(String[] args) {
        Window win=new Window();
        win.setBounds(400, 200, 310, 260);
        win.setTitle("登录");
    }
}
public class Window extends JFrame{
    JTextField text;
    JButton button;
    JPasswordField password;
    public Window() {
        init();
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    void init() {
        setLayout(null);
        //用户名块
        JLabel jl1=new JLabel("用户名:");
        jl1.setBounds(30,50,100,30);
        add(jl1);
        //用户名块输入块
        text=new JTextField(10);
        text.setBounds(80, 50, 150, 30);
        add(text);
        password=new JPasswordField(10);
        //密码块输入
        JLabel jl2=new JLabel("密码:");
        jl2.setBounds(42,100,100,30);
        add(jl2);
        //密码框大小
        password.setBounds(80, 100, 150, 30);
        add(password);
        //确定按键插入
        button=new JButton("确定");
        button.setBounds(115,150,70,30);
        add(button);
    }
}

实验任务 3

编写一个 Java 多线程应用程序,完成三个售票窗口同时出售 20 张票。具体要求如下:
• 票数要使用同一个静态值;
• 为保证不会出现卖出同一个票数,要 java 多线程同步锁。
在这里插入图片描述

public class trick {
    //总票数
    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 (trick.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();
        }
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/190131.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【LeetCode每日一题】【2023/1/31】2319. 判断矩阵是否是一个 X 矩阵

文章目录2319. 判断矩阵是否是一个 X 矩阵方法1&#xff1a;直接遍历2319. 判断矩阵是否是一个 X 矩阵 LeetCode: 2319. 判断矩阵是否是一个 X 矩阵 简单\color{#00AF9B}{简单}简单 如果一个正方形矩阵满足下述 全部 条件&#xff0c;则称之为一个 X 矩阵 &#xff1a; 矩阵对…

spring boot文档阅读笔记——02

spring boot文档阅读笔记——01 目录标题一、日志&#xff08;一&#xff09;slf4j logback&#xff08;spring boot默认方式&#xff09;1. 获取日志对象方式&#xff1a;2. 设置日志级别&#xff1a;3. 设置日志格式&#xff1a;4. 输出到日志文件&#xff1a;5. 日志文件设置…

关于python的mediapipe库踩过的坑

大家好&#xff0c;我是csdn的博主&#xff1a;lqj_本人 这是我的个人博客主页&#xff1a;lqj_本人的博客_CSDN博客-微信小程序,前端,vue领域博主lqj_本人擅长微信小程序,前端,vue,等方面的知识https://blog.csdn.net/lbcyllqj?spm1000.2115.3001.5343 哔哩哔哩欢迎关注&…

Nginx 常用配置汇总!

众所周知&#xff0c;Nginx 是 Apache服务不错的替代品。其特点是占有内存少&#xff0c;并发能力强&#xff0c;事实上 Nginx 的并发能力在同类型的网页服务器中表现较好&#xff0c;因此国内知名大厂例如&#xff1a;淘宝&#xff0c;京东&#xff0c;百度&#xff0c;新浪&a…

1.10 golang 切片Slice

1. 切片Slice 需要说明&#xff0c;slice 并不是数组或数组指针。它通过内部指针和相关属性引用数组片段&#xff0c;以实现变长方案。 1. 切片&#xff1a;切片是数组的一个引用&#xff0c;因此切片是引用类型。但自身是结构体&#xff0c;值拷贝传递。2. 切片的长度可以改变…

零基础机器学习做游戏辅助第六课--猫狗数据集认识卷积神经网络(二)

一、初识卷积 上一课我们已经将图像数据进行了预处理,这节课的重点就是学习卷积神经网络,到底什么是卷积,我们看图 input是我们输入的图像,Kernel是我们设置的3x3卷积核,卷积层将图像和卷积核进行计算提取特征输出神经元。

代码随想录算法训练营第35天 回溯算法 java :455.分发饼干 376. 摆动序列53. 最大子序和

文章目录贪心算法思路LeetCode 455.分发饼干题目详解LeetCode 376. 摆动序列题目详解思路示图LeetCode 53. 最大子序和题目详解思路示图总结贪心算法思路 以局部最优带动全局最优 LeetCode 455.分发饼干 题目详解 我做的是采用 优先满足胃口的思路。 对每个孩子 i&#xff…

【c#系列】PDF进行操作-浏览、分割、合并、插入、删除(2)

这节我们主要实现缩小、旋转、打印、分割、合并、放大等功能 1、 放大功能 单击放大按钮&#xff0c;实现PDF放大预览&#xff0c;效果如下&#xff1a; 设计代码&#xff1a; System.Windows.Forms.ToolStripButton FangDaBT_Tool;FangDaBT_Tool new System.Windows.Form…

GBase GCDW云数仓阿里云版免费试用来了!

GBase GCDW云原生数据仓库&#xff08;GCDW&#xff09;在阿里云计算巢上提供免费试用了&#xff01;简单 3 步&#xff0c;即可获得一个免费试用的GCDW服务实例&#xff0c;您可以定制该服务实例的云主机规格和数据库计算服务节点数等实例参数&#xff0c;该免费试用支持的数据…

LabVIEW NI CompactRIO控制器:性能和吞吐量基准测试

LabVIEW NI CompactRIO控制器&#xff1a;性能和吞吐量基准测试CompactRIO控制器基于LabVIEW RIO架构&#xff0c;采用了功能强大的64位Intel Atom E3800片上系统(SoC)和Xilinx Kintex7 FPGA等最新技术。Intel Atom SoC提供了极高的性能和丰富的功能&#xff0c;包括集成式GPU和…

数据结构实验二 :二叉树的操作与实现

数据结构实验一:线性表,堆栈和队列实现 数据结构实验二 :二叉树的操作与实现 数据结构实验三: 图的操作与实现 数据结构实验四 : 查找和排序算法实现 文章目录一、实验目的&#xff1a;二、使用仪器、器材三、实验内容及原理1、教材P247实验题1&#xff1a;实现二叉树的各种基本…

Mybatis 笔记

一、mybatis简介 1.1 框架概念 软件的半成品&#xff0c;完成软件开发过程中的通用操作&#xff0c;实现特定的功能&#xff0c;从而简化开发人员在软件开发中的步骤&#xff0c;提升开发效率。 1.2 常用框架 MVC框架&#xff1a;简化servlet的开发步骤&#xff0c;与前端交…

java实现oracle和mysql的group by分组功能|同时具备max()/min()/sum()/case when 函数等功能

一、前言oracle和mysql的group by 分组功能大家应该清楚&#xff0c;那如何使用java实现同样的功能呢比如下面这个表idnameagemathEnglish10yujianlin2092.5103ww84102520102611036310351020我们需要按id分组&#xff0c;求最大age和math累计成绩我们的sql应该这样写select id,…

Linux下的安装环境

目录 软件安装常识 Linux软件安装生态 Linux软件生态的本土化 yum的三板斧&#xff1a;查找、安装、卸载 yum补充的3个小知识 软件安装常识 我们知道Linux下有一条命令可以下载安装指令&#xff0c;那就是yum。在了解yum之前得先说一下Linux的整体安装环境。 Linux下用y…

每日学术速递2.1

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.Cv 1.SeaFormer: Squeeze-enhanced Axial Transformer for Mobile Semantic Segmentation 标题&#xff1a;SeaFormer:用于移动语义分割的挤压增强型轴向变换器 作者&#xff1a; Qian…

从 await-to-js 到 try-run-js

之前在做 code review 时候发现有同事使用 try catch 包装了一堆异步代码&#xff0c;于是个人就觉得很奇怪&#xff0c;难道不应该只 catch 可能出问题的代码吗&#xff1f;同事告诉我说 try catch 太细的话会出现内外作用域不一致&#xff0c;需要提前声明变量。 let res: D…

【微服务】微服务保护Sentinel

微服务保护Sentinel1.初识Sentinel1.1.雪崩问题及解决方案1.1.1.雪崩问题1.1.2.超时处理1.1.3.仓壁模式1.1.4.断路器1.1.5.限流1.1.6.总结1.2.服务保护技术对比1.3.Sentinel介绍和安装1.3.1.初识Sentinel1.3.2.安装Sentinel1.4.微服务整合Sentinel2.流量控制2.1.簇点链路2.1.快…

豆瓣引流流程

豆瓣引流注册账号养号如何把豆瓣的帖子打造好并且引流到微信注册账号 第一&#xff1a;可以去营业厅或者卡商那里购买一批卡来进行注册。 第二&#xff1a;可以通过接码平台进行大量的一个小号注册&#xff0c;我们注册的号前期是作为一个顶帖号来使用。 第三&#xff1a;我…

商业智能 BI 跟业务系统的思维差异

我们在跟企业的沟通过程中经常发现&#xff0c;很多企业还是分不清商业智能 BI 跟一般的业务信息化系统定位、用户、思维层面上的差异。因为在企业的IT信息化规划中&#xff0c;基础的业务系统建设一定是走在前面的&#xff0c;有了这些系统基础&#xff0c;才会有数据的积累&a…

Python绘制图片一

文章目录一、代码段讲解1. theta np.linspace(0.0, 2 * np.pi, N , endpointFalse)2. ax plt.subplot(111,projectionpolar)3. bar.set_facecolor(plt.cm.viridis(r / 10.))4. bar.set_alpha(0.5)二、附录一、代码段讲解 1. theta np.linspace(0.0, 2 * np.pi, N , endpoint…