Java实验08
实验一
demo.java
package q8.demo02;public class demo{public static void main(String[] args) {WindowMenu win = new WindowMenu("Hello World",20,30,600,290);}
}
WindowMenu.java
package q8.demo02;
import javax.swing.*;public class WindowMenu extends JFrame{JMenuBar menubar;JMenu menu1,menu2,menu3;//状态栏菜单JMenuItem Item1,Item2,Item3,Item3_1,Item3_2;//public WindowMenu(){}public WindowMenu(String s, int x, int y, int w, int h){init(s);setLocation(x,y);setSize(w,h);setVisible(true);setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);}void init(String s){setTitle(s);//设置标题menubar = new JMenuBar();menu1 = new JMenu("文件");menu2 = new JMenu("编辑");menu3 = new JMenu("帮助");Item1 = new JMenuItem("新建(N)");Item2 = new JMenuItem("打开(O)");Item3 = new JMenu("退出(E)");Item3_1 = new JMenuItem("重启");Item3_2 = new JMenuItem("退出");menu1.add(Item1);//按钮新建menu1.add(Item2);//按钮打开menu1.addSeparator();//分割线menu1.add(Item3);//按钮退出//添加二级菜单Item3.add(Item3_1);Item3.add(Item3_2);setJMenuBar(menubar);//设置状态栏菜单menubar.add(menu1);//添加菜单menu123menubar.add(menu2);menubar.add(menu3);}
}
实验二
Demo.java
package q8.demo03;public class Demo {public static void main(String[] args) {new ShowLayout();}}
ShowLayout.java
package q8.demo03;
import java.awt.*;
import javax.swing.*;public class ShowLayout extends JFrame {PanelGridLayout panelGrid;PanelNullLayout panelNull;JTabbedPane p;ShowLayout(){setTitle("背包");panelGrid = new PanelGridLayout();panelNull = new PanelNullLayout();p = new JTabbedPane();p.add("武器",panelGrid);p.add("法器",panelNull);add(p,BorderLayout.CENTER);add(p,BorderLayout.CENTER);setBounds(300,100,600,600);setVisible(true);setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);validate();}
}
PanelGridLayout.java
package q8.demo03;
import java.awt.*;
import javax.swing.*;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
public class PanelGridLayout extends JPanel {PanelGridLayout(){GridLayout grid = new GridLayout(5,5);String[] texts = {"蛟龙铲","祁水","琉璃","夷图","若禅","应龙斧","虬龙棍","蟠龙杖","蛟龙弓","蝴蝶","知汝","梦江","天殇","天罪","天残","天荒","银弹金弓","花宴","不朽花翼","破幻花链","镇魂花坠","苍龙戒","阴阳斩龙剑","青龙剑","混元珍珠伞",};setLayout(grid);JLabel label[][] = new JLabel[5][5];JLabel textLabel[][] = new JLabel[5][5];for (int j =0; j < 5; j++){for (int i = 0; i < 5; i++){label[i][j] = new JLabel();int imageIndex = (j * 5) + i + 1; // 计算当前图片的索引String imagePath = "src\\pictures\\arms (" + imageIndex + ").png";label[i][j] = new JLabel();textLabel[i][j] = new JLabel();if (imageIndex <= texts.length) {textLabel[i][j].setText(texts[imageIndex - 1]);}if (new java.io.File(imagePath).exists()) {label[i][j].setIcon(new ImageIcon(imagePath));} else {System.out.println("没有找到: " + imagePath);}JPanel container = new JPanel(new BorderLayout());container.add(label[i][j], BorderLayout.CENTER);container.add(textLabel[i][j], BorderLayout.SOUTH);add(container);}}}
}
PanelNullLayout.java
package q8.demo03;
import java.awt.*;
import javax.swing.*;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
public class PanelNullLayout extends JPanel{PanelNullLayout(){GridLayout grid = new GridLayout(5,5);String[] texts = {"间忏无形铲","间忏千斤锤","间忏鬼牙耙","间忏殉道书","间忏绝情杖","间忏拳套","间忏逍遥棍","间忏脩夜刀","间忏附灵杵","间忏承影剑","间忏七星枪","间忏夜魔弓","开阳禅杖","开阳灵棒","摇光剑","神将剑","暮雪剑","归墟剑","无极剑","开阳剑","开阳铲","开阳钉耙","开阳灵枪","开阳灵刃","赤龙枪",};setLayout(grid);JLabel label[][] = new JLabel[5][5];JLabel textLabel[][] = new JLabel[5][5];for (int j =0; j < 5; j++){for (int i = 0; i < 5; i++){label[i][j] = new JLabel();int imageIndex = (j * 5) + i + 1;String imagePath = "src\\pictures\\weapon (" + imageIndex + ").png";label[i][j] = new JLabel();textLabel[i][j] = new JLabel();if (imageIndex <= texts.length) {textLabel[i][j].setText(texts[imageIndex - 1]);}if (new java.io.File(imagePath).exists()) {label[i][j].setIcon(new ImageIcon(imagePath));}else {System.out.println("没有找到: " + imagePath);}JPanel container = new JPanel(new BorderLayout());container.add(label[i][j], BorderLayout.CENTER);container.add(textLabel[i][j], BorderLayout.SOUTH);add(container);}}}
}
相关文章:
Java实验08
实验一 demo.java package q8.demo02;public class demo{public static void main(String[] args) {WindowMenu win new WindowMenu("Hello World",20,30,600,290);} }WindowMenu.java package q8.demo02; import javax.swing.*;public class WindowMenu extends…...

MyBatis复习笔记
3.Mybatis复习 3.1 xml配置 properties:加载配置文件 settings:设置驼峰映射 <settings><setting name"mapUnderscoreToCamelCase" value"true"/> </settings>typeAliases:类型别名设置 #这样在映射…...
HTML的基石:区块标签与小语义标签的深度解析
📚 HTML的基石:区块标签与小语义标签的深度解析 🌐 区块标签:构建网页的框架🏠 <div>:万能的容器📚 <section>、<article>、<aside>:语义化的布局 …...
Windows域控简介
一、Windows 域控概念 Windows 域控即 Active Directory(AD)域控制器,它是 Windows Server 中的一个角色,用于管理网络中的用户帐户、计算机和其他设备。AD 域控制器的功能包括: 用户认证:允许用户通过用…...
项目延期,不要随意加派人手
遇到软件项目出现延期的情况时,不建议随意加派人手。原因如下: 有些任务是不可拆分的,不能拆分为多个并行任务,增加人员不会加快项目进度。新增加人员需要原有人员介绍项目中的技术架构、业务知识,在开发过程中也难免…...

帝国CMS验证码不显示怎么回事呢?
帝国CMS验证码有时候会不显示或打叉,总结自己的解决方法。 1、检查服务器是否开启GD库 测试GD库是否开启的方法:浏览器访问:/e/showkey/index.php,如果出现一堆乱码或报错,证明GD库没有开启,开启即可。 2…...
【必会面试题】Redis 中的 zset数据结构
目录 Redis 中的 zset(sorted set,有序集合)数据结构在底层可以使用两种不同的实现:压缩列表(ziplist) 和 跳跃表(skiplist)。具体使用哪种结构取决于存储元素的数量和大小ÿ…...
括号匹配数据结构
括号匹配是一种数据结构问题,用于检查给定的字符串中的括号是否匹配。例如,对于字符串 "((())())",括号是匹配的,而对于字符串 "())(",括号是不匹配的。 常见的解决括号匹配问题的数据结构是栈。…...

c语言:strcmp
strcmp函数是用于比较两个字符串的库函数,其功能是根据ASCII值逐一对两个字符串进行比较。 语法:strcmp(str1, str2) 返回值: 如果str1等于str2,则返回0。 如果str1小于str2,则返回负数(具体值取决于C…...
传统关系型数据库与hive的区别
数据库和Hive之间存在本质的区别,主要体现在设计目的、数据处理方式、数据存储、查询延迟、数据更新能力、以及适用场景等方面。下面详细阐述它们之间的主要差异: 设计目的与应用场景: 数据库:主要是面向事务处理(OLTP…...

windows-386、windows-amd64、windows-arm64这三者有什么区别?
选择文件的版本出现下面问题: Architectures windows-386 :这些是针对 32 位 Windows 系统编译的。windows-amd64 :这些是针对具有 AMD 或 Intel x86-64 架构的 64 位 Windows 系统编译的。windows-arm64 :这些是针对具有 ARM 架…...

链表经典题目—相交链表和链表倒数第k个节点
🎉🎉🎉欢迎莅临我的博客空间,我是池央,一个对C和数据结构怀有无限热忱的探索者。🙌 🌸🌸🌸这里是我分享C/C编程、数据结构应用的乐园✨ 🎈🎈&…...
Java 写入 influxdb
利用Python随机生成一个1000行的csv文件 import csv import random from datetime import datetime, timedelta from random import randint, choice# 定义监控对象列表和指标名称列表 monitor_objects [Server1, Server2, Server3, DB1] metric_names [CPUUsage, MemoryUsa…...
npm的基本命令和用法
1. 安装与初始化 安装npm 首先,确保你的系统中已安装了Node.js,因为npm随Node.js一同分发。访问Node.js官网下载并安装适合你操作系统的版本。安装完成后,在终端或命令提示符中输入以下命令来验证安装: 1$ node -v 2$ npm -v …...
Python 基于深度图、RGB图生成RGBD点云数据
RGBD点云生成 一、概述1.1 定义1.2 函数讲解二、代码示例三、结果示例一、概述 1.1 定义 RGBD点云:是一种包含颜色和深度信息的点云数据。RGB代表红、绿、蓝三原色,表示点云中每个点的颜色信息;D代表深度,表示点云中每个点的相对于相机的距离信息。通过结合颜色和深度信息…...

力扣刷题--LCR 075. 数组的相对排序【简单】
题目描述 给定两个数组,arr1 和 arr2, arr2 中的元素各不相同 arr2 中的每个元素都出现在 arr1 中 对 arr1 中的元素进行排序,使 arr1 中项的相对顺序和 arr2 中的相对顺序相同。未在 arr2 中出现过的元素需要按照升序放在 arr1 的末尾。 …...
机器学习笔记——K近邻算法、手写数字识别
KNN算法 “物以类聚,人以群分”相似的数据往往拥有相同的类别 其大概原理就是一个样本归到哪一类,当前样本需要归到频次最高的哪个类去 也就是说有一个待分类的样本,然后跟他周围的k个样本来看,k中哪一个类最多,待分类…...

基于STM32实现智能园艺系统
目录 引言环境准备智能园艺系统基础代码示例:实现智能园艺系统 土壤湿度传感器数据读取水泵控制温湿度传感器数据读取显示系统用户输入和设置应用场景:智能农业与家庭园艺问题解决方案与优化收尾与总结 1. 引言 本教程将详细介绍如何在STM32嵌入式系统…...

网络原理-HTTP协议
HTTP协议 HTTP协议全称为超文本传输协议,除了能传输字符串,还能传输图片、视频、音频等。 当我们在访问网页的时候,浏览器会从服务器上下载数据,这些数据都会放在HTTP响应中,然后浏览器再根据这个HTTP响应显示出网页信息。 抓包 抓包工具本质上是一个代理工具,即我们将构造…...
【ES001】elasticsearch实战经验总结(最近更新中)
1.熟悉、梳理、总结下elasticsearch相关知识体系。 2.日常研发过程中使用较少,随着时间的推移,很快就忘得一干二净,所以梳理总结下,以备日常使用参考 3.欢迎批评指正,跪谢一键三连! 文章目录 1. 1....

Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地
借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...

高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...

微服务商城-商品微服务
数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...

令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍
文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结: 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析: 实际业务去理解体会统一注…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成
厌倦手动写WordPress文章?AI自动生成,效率提升10倍! 支持多语言、自动配图、定时发布,让内容创作更轻松! AI内容生成 → 不想每天写文章?AI一键生成高质量内容!多语言支持 → 跨境电商必备&am…...

EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...
大数据学习(132)-HIve数据分析
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言Ǵ…...

通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器
拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件: 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...