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);}}}
}

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

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

相关文章

数据结构初始化链表

链表是一种常见的数据结构&#xff0c;可以用于存储一系列的元素&#xff0c;每个元素包含一个值和一个指向下一个元素的指针。 链表的初始化可以通过创建一个头结点来实现&#xff0c;头结点不存储任何元素&#xff0c;只作为链表的起始点。在初始化时&#xff0c;可以将头结…

3d火灾救援模拟仿真培训软件复用性强

消防VR安全逃生体验系统是深圳VR公司华锐视点引入了前沿的VR虚拟现实、web3d开发和多媒体交互技术&#xff0c;为用户打造了一个逼真的火灾现场应急逃生模拟演练环境。 相比传统的消防逃生模拟演练&#xff0c;消防VR安全逃生体验系统包含知识讲解和模拟实训演练&#xff0c;体…

el-table树型数据lazy加载实现首行展开

el-table树型数据lazy加载实现首行展开 遇到一个小需求&#xff0c;一个树型数据的el-table&#xff0c;并且使用lazy加载&#xff0c;需要实现首行展开。 实现 思路&#xff1a;使用 expand-row-keys 或者 toggleRowExpansion API展开&#xff0c;但是发现这些API并不会触发…

【百度智能体】5分钟打造一款为你写情书的智能体

目录 前言一、智能体特点二、应用场景三、打造一款写情书智能体1、名称2、简介3、填写人物设定&#xff1a;4、开场白5、引导示例6、预览 最后 前言 智能体作为人工智能领域的一个重要概念&#xff0c;是指能够自主感知环境、做出决策并执行行动的系统。它具备自主性、交互性、…

程序员经常去的网站

程序员们经常去的网站确实非常多样化&#xff0c;这些网站不仅提供了丰富的技术资源和学习材料&#xff0c;还是他们交流经验和分享知识的重要平台。以下是一些程序员经常访问的网站&#xff0c;我将按照不同的类别进行归纳和分点表示&#xff1a; 一、代码托管与协作 GitHub&a…

单元测试(了解)

单元测试定义 针对最小功能单元&#xff08;方法&#xff09;&#xff0c;编写测试代码对其进行正确性测试 之前如何进行单元测试&#xff1f;有什么问题&#xff1f; main中编写测试代码&#xff0c;调用方法测试 问题&#xff1a; 无法自动化测试 每个方法的测试可能不是…

EPSON爱普生RTC RA8900CE/RA8000CE+松下Panasonic电池组合

RTC是一种实时时钟&#xff0c;用于记录和跟踪时间&#xff0c;具有独立供电和时钟功能。在某些应用场景中&#xff0c;为了保证RTC在断电或者其他异常情况下依然能够正常工作&#xff0c;需要备份电池方案来提供稳定的供电。本文将介绍EPSON爱普生RTC RA8900CE/RA8000CE松下Pa…

【吊打面试官系列】Java高并发篇 - AQS 支持几种同步方式 ?

大家好&#xff0c;我是锋哥。今天分享关于 【AQS 支持几种同步方式 &#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; AQS 支持几种同步方式 &#xff1f; 1、独占式 2、共享式 这样方便使用者实现不同类型的同步组件&#xff0c;独占式如 ReentrantLock&…

VUE3.0学习-模版语法

安装Node.js的过程相对直接&#xff0c;以下是详细的步骤指导&#xff0c;适用于大多数操作系统&#xff1a; ### 1. 访问Node.js官方网站 首先&#xff0c;打开浏览器&#xff0c;访问 [Node.js 官方网站](https://nodejs.org/)。 ### 2. 选择合适的版本下载 在Node.js官网上…

OpenHarmony 实战开发——ArkUI中的线程和看门狗机制

一、前言 本文主要分析ArkUI中涉及的线程和看门狗机制。 二、ArkUI中的线程 应用Ability首次创建界面的流程大致如下&#xff1a; 说明&#xff1a; • AceContainer是一个容器类&#xff0c;由前端、任务执行器、资源管理器、渲染管线、视图等聚合而成&#xff0c;提供了生…

C++ 头文件优化

C 是一种灵活的语言&#xff0c;所以需要一种积极的方法来分析和减少编译时依赖。一种常见的达到这个目的的方法是&#xff0c;将依赖从头文件里转移到源代码文件里。实现这个目的的方法叫做提前声明。 简而言之&#xff0c;这些声明告诉编译器某个函数接受和返回哪些参数&…

opencv 关于 卷积核(掩膜) 的通俗理解

1 opencv 坐标原点是左上角 x向右延伸 y向下延伸 图像的坐标原点位于左上角&#xff0c;x 轴向右延伸&#xff0c;y 轴向下延伸。这种坐标系与大多数计算机图像处理库&#xff08;如 PIL、MATLAB 等&#xff09;一致 例如 给定像素坐标(x,y) 则周围点表示为: 左上方的像素:…

Android 调用OpenCV动态库

1、下载OpenCVMobile的文件,链接地址 2、OpenCV-android-sdk/sdk/native/libs/arm64-v8a/libopencv_java4.so拷贝处理放到libs里面 3、 OpenCV-android-sdk/sdk/native/jni/include 放到include文件夹下 4、Cmake修改 set(lib_DIR ${CMAKE_SOURCE_DIR}/libs) add_library(l…

Python操作MySQL实战

文章导读 本文用于巩固Pymysql操作MySQL与MySQL操作的知识点&#xff0c;实现一个简易的音乐播放器&#xff0c;拟实现的功能包括&#xff1a;用户登录&#xff0c;窗口显示&#xff0c;加载本地音乐&#xff0c;加入和删除播放列表&#xff0c;播放音乐。 点击此处获取参考源…

《异常检测——从经典算法到深度学习》28 UNRAVEL ANOMALIES:基于周期与趋势分解的时间序列异常检测端到端方法

《异常检测——从经典算法到深度学习》 0 概论1 基于隔离森林的异常检测算法 2 基于LOF的异常检测算法3 基于One-Class SVM的异常检测算法4 基于高斯概率密度异常检测算法5 Opprentice——异常检测经典算法最终篇6 基于重构概率的 VAE 异常检测7 基于条件VAE异常检测8 Donut: …

【必会面试题】Redis 中的 zset数据结构

目录 Redis 中的 zset&#xff08;sorted set&#xff0c;有序集合&#xff09;数据结构在底层可以使用两种不同的实现&#xff1a;压缩列表&#xff08;ziplist&#xff09; 和 跳跃表&#xff08;skiplist&#xff09;。具体使用哪种结构取决于存储元素的数量和大小&#xff…

设计模式13——桥接模式

写文章的初心主要是用来帮助自己快速的回忆这个模式该怎么用&#xff0c;主要是下面的UML图可以起到大作用&#xff0c;在你学习过一遍以后可能会遗忘&#xff0c;忘记了不要紧&#xff0c;只要看一眼UML图就能想起来了。同时也请大家多多指教。 桥接模式&#xff08;Bridge&a…

冯喜运:5.27黄金短线看震荡,今日黄金原油走势分析

【黄金消息面分析】&#xff1a;黄金作为传统的避险资产&#xff0c;在经济不确定性中扮演着至关重要的角色。近期&#xff0c;国际黄金价格经历了显著的波动。从5月9日的低点2325.19美元/盎司反弹至2340美元/盎司以上&#xff0c;尽管金价曾一度触及2449.89美元/盎司的历史高点…

利用ESP32(Arduino IDE)向匿名上位机发送欧拉角

文章目录 一. 匿名上位机介绍二. 匿名协议说明1. 匿名协议官方说明文档2. 协议说明 三. 向匿名上位机发送数据(基于Arduino IDE的esp32)四. 运行效果 一. 匿名上位机介绍 匿名上位机官方介绍视频 匿名上位机官方下载 二. 匿名协议说明 1. 匿名协议官方说明文档 官方对于协…

现代 c++ 三:移动语义与右值引用

移动语义很简单&#xff0c;但它相关联的术语很复杂。本文尝试从历史的角度解释清楚这些乱七八糟的术语及其关联&#xff1a; 表达式 (expression)、类型&#xff08;type&#xff09;、值类别 (value categories)&#xff1b; 左值 (lvalue)、右值 (rvalue)、广义左值 (glval…