当前位置: 首页 > news >正文

如何分析网站设计/百度搜索浏览器

如何分析网站设计,百度搜索浏览器,怎么样做网站卖农产品,制作网站的模板实验目的 1)掌握组合器模式(composite)的特点 2 分析具体问题,使用组合器模式进行设计。 实验内容和要求 在例3.3的设计中,添加一个空军大队( Wing)类,该类与Squadron、Group类是平行的,因此应该继承了AirU…

实验目的
1)掌握组合器模式(composite)的特点
2 分析具体问题,使用组合器模式进行设计。
实验内容和要求
在例3.3的设计中,添加一个空军大队( Wing)类,该类与Squadron、Group类是平行的,因此应该继承了AirUnit类。该类的写法与Squadron或者Group类是类似的,所不同的是一个Wing有216中类型的飞机。
【模式代码(JAVA语言实现)】
1、添加Wing 类:红色部分是添加进去的

package ddd;/*=======================*/
/* Represents an air Wing      */
/*=======================*/public class Wing extends AirUnit{public static final String FEATURES = "A Wing with 216 aircrafts";Airforce[] fighters = new Airforce[162];Airforce[] bombers = new Airforce[18];Airforce[] transporters= new Airforce[18];Airforce[] eAircrafts = new Airforce[18];public Wing(){for(int k=0;k<162;k++){fighters[k] = new F22();super.attach(fighters[k]);// need 162 fighters}for(int k=0;k<18;k++){bombers[k] = new B52();super.attach(bombers[k] );// need 18 bombers}for(int k=0;k<18;k++){transporters[k] = new C130J();super.attach(transporters[k]);// need 18 transporters}for(int k=0;k<18;k++){eAircrafts[k] = new E9A();super.attach(eAircrafts[k]);// need 18 eAirplanes}}public String getDescription(){return FEATURES;}public String fight(){return super.fight();}
}

2、添加GUI:红色部分是添加进去的

package ddd;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.Iterator;/*===================================================================*/
/* User interface for Testing the Composite design pattern program   */
/*===================================================================*/
public class AirforceGUI extends JFrame implements ItemListener{private JScrollPane checkBoxPane, textPane;private JSplitPane  splitPane;private JTextArea   txtAirMission;private JButton submitBtn, exitBtn;private JPanel checkBoxPanel, btnPanel, choicePanel;private JCheckBox[] airCheckBox;private JCheckBox[] airUnitCheckBox;private String[] airPlaneName ={"F-15E-Strike-Eagle","F-16C/D-Fighting-Falcon","F22A-Rapter","B-1B-Lancer","B-2A-Spirit","B-52H-Stratofortress","C-130E/H-Hercules","C-130J-Super-Hercules","CV-22B-Osprey","E-9A",  "EC-130H/J-Compass", "AirForce","Fighters","Bombers", "Transporters", "E-Planes"};private String[] AirForceUnit = {"SQUADRON", "GROUP", "WING"};public final int SELECTED = ItemEvent.SELECTED;public final int DESELECTED = ItemEvent.DESELECTED;private static final String[] OPTION = {"Solo", "Group"};private JComboBox[] optComoBox=new JComboBox[11];private int[] ckBoxStates;private GridBagLayout gridbag = new GridBagLayout();private GridBagConstraints gbc = new GridBagConstraints();public AirforceGUI(){super("Composite Pattern - Airforce");ckBoxStates = new int[50];setUpChoicePanel();setUpScrollPanes();}private void setUpChoicePanel(){submitBtn = new JButton("Submit");exitBtn = new JButton("Exit");submitBtn.addActionListener( new ButtonActionListener());exitBtn.addActionListener( new ButtonActionListener());JPanel btnPanel =new JPanel();btnPanel.add(submitBtn);btnPanel.add(exitBtn);int numCheckBox = airPlaneName.length;airCheckBox = new JCheckBox[numCheckBox];airUnitCheckBox = new JCheckBox[3];//Check boxes for selection of the airplanesfor(int m=0; m<numCheckBox; m++){airCheckBox[m]= new JCheckBox(airPlaneName[m]);airCheckBox[m].setMnemonic(KeyEvent.VK_C);airCheckBox[m].addItemListener(this);}//Check boxes for selection of air unitsfor(int m=0; m<3; m++){airUnitCheckBox[m]= new JCheckBox(AirForceUnit[m]);airUnitCheckBox[m].setMnemonic(KeyEvent.VK_C);airUnitCheckBox[m].addItemListener(this);}//Combobox for deciding on solo flight or notfor(int i=0;i<11;i++){optComoBox[i]= new JComboBox(OPTION);optComoBox[i].addItemListener(this);}checkBoxPanel = new JPanel();checkBoxPanel.setLayout(gridbag);for(int m=0; m<numCheckBox; m++)checkBoxPanel.add(airCheckBox[m]);for(int m=0; m<3; m++)checkBoxPanel.add(airUnitCheckBox[m]);for(int i=0;i<11;i++)checkBoxPanel.add(optComoBox[i]);gbc.insets.top = 0;gbc.insets.bottom = 0;gbc.insets.left = 0;gbc.insets.right = 0;gbc.anchor = GridBagConstraints.WEST;add(0, 0, airCheckBox[11]);add(1, 1, airCheckBox[12]);add(2, 3, airCheckBox[0]);add(2, 4, airCheckBox[1]);add(2, 5, airCheckBox[2]);add(1, 6, airCheckBox[13]);add(2, 7, airCheckBox[3]);add(2, 8, airCheckBox[4]);add(2, 9, airCheckBox[5]);add(1, 10, airCheckBox[14]);add(2, 11, airCheckBox[6]);add(2, 12, airCheckBox[7]);add(2, 13, airCheckBox[8]);add(1, 14, airCheckBox[15]);add(2, 15, airCheckBox[9]);add(2, 16, airCheckBox[10]);add(3, 3, optComoBox[0]);add(3, 4, optComoBox[1]);add(3, 5, optComoBox[2]);add(3, 7, optComoBox[3]);add(3, 8, optComoBox[4]);add(3, 9, optComoBox[5]);add(3, 11, optComoBox[6]);add(3, 12, optComoBox[7]);add(3, 13, optComoBox[8]);add(3, 15, optComoBox[9]);add(3, 16, optComoBox[10]);add(0, 17, airUnitCheckBox[0]);add(0, 18, airUnitCheckBox[1]);add(0, 19, airUnitCheckBox[2]);choicePanel = new JPanel();choicePanel.setMinimumSize(new Dimension(500, 300));choicePanel.setLayout(new BorderLayout());choicePanel.add(checkBoxPanel, "Center");choicePanel.add(btnPanel, "South");}private void add(int m, int n, JComponent com ){gbc.gridx = m;gbc.gridy = n;gridbag.setConstraints(com, gbc);}private void setUpScrollPanes(){txtAirMission = new JTextArea(3,10);txtAirMission.setBackground(Color.cyan);txtAirMission.setText("选择军事单位:空军中队(SQUADRON),空军团(GROUP)或者空军大队(WING)"+ "\n组成固定单位的战斗力量。你也可以直接选择各种机型形成临时的编队"+"\n飞行(在组合框中选Group)或者单飞(在组合框中选Solo)。");checkBoxPane = new JScrollPane(choicePanel);textPane = new JScrollPane(txtAirMission);textPane.setMinimumSize(new Dimension(500, 100));splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, checkBoxPane, textPane);splitPane.setDividerLocation(470);getContentPane().add(splitPane);setSize(new Dimension(500, 500));setVisible(true);}//========================================// 新增加功能,需要理解本监听器所涉及的方法。//========================================class ButtonActionListener implements ActionListener{public void actionPerformed(ActionEvent e) {txtAirMission.setText("\n===Airforce New Mission===\n");createAirGroup(e);}}public void itemStateChanged(ItemEvent e){Object source = e.getItemSelectable();int state = e.getStateChange();if (source == airCheckBox[11]) {if(state == SELECTED){for(int m=12; m<16; m++)airCheckBox[m].setSelected(true);}else if (state == DESELECTED){for(int m=12; m<16; m++)airCheckBox[m].setSelected(false);}}else if (source ==  airCheckBox[12]) {if(state == SELECTED){for(int m=0; m<3; m++)airCheckBox[m].setSelected(true);}else if (state == DESELECTED){for(int m=0; m<3; m++)airCheckBox[m].setSelected(false);}}else if (source == airCheckBox[0])ckBoxStates[0]=state;else if (source == airCheckBox[1])ckBoxStates[1]=state;else if (source == airCheckBox[2])ckBoxStates[2]=state;else if (source == airCheckBox[13]){if(state == SELECTED){for(int m=3; m<6; m++)airCheckBox[m].setSelected(true);}else if (state == DESELECTED){for(int m=3; m<6; m++)airCheckBox[m].setSelected(false);}}else if (source == airCheckBox[3])ckBoxStates[3]=state;else if (source == airCheckBox[4])ckBoxStates[4]=state;else if (source == airCheckBox[5])ckBoxStates[5]=state;else if (source == airCheckBox[14]){if(state == SELECTED){for(int m=6; m<9; m++)airCheckBox[m].setSelected(true);}else if (state == DESELECTED){for(int m=6; m<9; m++)airCheckBox[m].setSelected(false);}}else if (source == airCheckBox[6])ckBoxStates[6]=state;else if (source == airCheckBox[7])ckBoxStates[7] = state;else if (source == airCheckBox[8])ckBoxStates[8]=state;else if (source == airCheckBox[15]){if(state == SELECTED){airCheckBox[9].setSelected(true);airCheckBox[10].setSelected(true);}else if (state == DESELECTED){airCheckBox[9].setSelected(false);airCheckBox[10].setSelected(false);}}else if (source == airCheckBox[9])ckBoxStates[9]=state;else if (source == airCheckBox[10])ckBoxStates[10]=state;//== for air unitselse if (source == airUnitCheckBox[0])ckBoxStates[11]=state;else if (source == airUnitCheckBox[1])ckBoxStates[12]=state;else if (source == airUnitCheckBox[2])ckBoxStates[13]=state;}private void createAirGroup(ActionEvent e){Airforce airCraft = null;Airforce unit = null;AirUnit airGroup = new AirUnit();AirUnit airUnits = new AirUnit();boolean isSolo = false;int len = ckBoxStates.length;String unitInfo = null;if (e.getActionCommand().equals("Submit")) {for(int m = 0; m < len; m++ ){if ((m==0) && (ckBoxStates[0] == SELECTED)) {airCraft = new F15();if(optComoBox[0].getSelectedItem().equals("Solo"))isSolo = true;}else if ((m==1) && (ckBoxStates[1] == SELECTED)){airCraft = new F16();if(optComoBox[1].getSelectedItem().equals("Solo"))isSolo = true;}else if ((m==2) && (ckBoxStates[2] == SELECTED)){airCraft = new F22();if(optComoBox[2].getSelectedItem().equals("Solo"))isSolo = true;}else if ((m==3) && (ckBoxStates[3] == SELECTED)){airCraft = new B1B();if(optComoBox[3].getSelectedItem().equals("Solo"))isSolo = true;}else if ((m==4) && (ckBoxStates[4] == SELECTED)) {airCraft = new B2A();if(optComoBox[4].getSelectedItem().equals("Solo"))isSolo = true;}else if ((m==5) && (ckBoxStates[5] == SELECTED)){airCraft = new B52();if(optComoBox[5].getSelectedItem().equals("Solo"))isSolo = true;}else if ((m==6) && (ckBoxStates[6] == SELECTED)) {airCraft = new C130E();if(optComoBox[6].getSelectedItem().equals("Solo"))isSolo = true;}else if ((m==7) && (ckBoxStates[7] == SELECTED)) {airCraft = new C130J();if(optComoBox[7].getSelectedItem().equals("Solo"))isSolo = true;}else if ((m==8) && (ckBoxStates[8] == SELECTED)) {airCraft = new CV22();if(optComoBox[8].getSelectedItem().equals("Solo"))isSolo = true;}else if ((m==9) && (ckBoxStates[9] == SELECTED)) {airCraft = new E9A();if(optComoBox[9].getSelectedItem().equals("Solo"))isSolo = true;}else if ((m==10) && (ckBoxStates[10] == SELECTED)) {airCraft = new EC130();if(optComoBox[10].getSelectedItem().equals("Solo"))isSolo = true;}//== for air unitselse if ((m==11) && (ckBoxStates[11] == SELECTED)){unit = new Squadron();airUnits.attach(unit);unitInfo = unit.getDescription();}else if ((m==12) && (ckBoxStates[12] == SELECTED)){unit = new Group();airUnits.attach(unit);unitInfo = unit.getDescription();}else if ((m==13) && (ckBoxStates[13] == SELECTED)){unit = new Wing();airUnits.attach(unit);unitInfo = unit.getDescription();}if( airCraft != null){if(isSolo == false)airGroup.attach(airCraft);else{String f = airCraft.fight();txtAirMission.append("Solo Flight Mission: \n" + f + "\n");}airCraft = null;isSolo = false;}}  //end for loop//Display Air Group Actionsif(airGroup.getSize() > 0){String str = airGroup.fight();txtAirMission.append("Mission with newly-formed unit: \n" + str + "\n");}if(airUnits.getSize() > 0){String str = airUnits.fight();txtAirMission.append("Mission with fixed unit: \n" + unitInfo + " \n");txtAirMission.append("Aircrafts in this mission: \n" + str + "\n");}}else if (e.getActionCommand().equals("Exit")) {System.exit(1);}}public static void main(String args[]){try {JFrame.setDefaultLookAndFeelDecorated(true);//UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");}catch (Exception evt) {}AirforceGUI frame = new AirforceGUI();frame.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});frame.setSize(500, 600);frame.setVisible(true);}
}

【运行截图】
在这里插入图片描述

在这里插入图片描述

【实验小结】
通过本次实验,学会了使用组合器方法模式。组合器方法模式的适用性如下:
我们这样来简单的理解组合模式,组合模式就是把一些现有的对象或者元素,经过组合后组成新的对象,新的对象提供内部方法,可以让我们很方便的完成这些元素或者内部对象的访问和操作。我们也可以把组合对象理解成一个容器,容器提供各种访问其内部对象或者元素的API,我们只需要使用这些方法就可以操作它了。

相关文章:

实验七 组合器模式的应用

实验目的 1)掌握组合器模式&#xff08;composite&#xff09;的特点 2 分析具体问题&#xff0c;使用组合器模式进行设计。 实验内容和要求 在例3.3的设计中&#xff0c;添加一个空军大队( Wing)类&#xff0c;该类与Squadron、Group类是平行的&#xff0c;因此应该继承了AirU…...

Springboot实现人脸识别与WebSocket长连接的实现

0.什么是WebSocket,由于普通的请求是间断式发送的,如果要同一时间发生大量的请求,必然导致响应速度慢(因为根据tcp协议要经过三层握手,如果不持续发送,就会导致n多次握手,关闭连接,打开连接) 1.业务需求: 由于我需要使用java来处理视频的问题,视频其实就是图片,相当于每张图片…...

智能安全帽功能-EIS智能防抖摄像头4G定位视频语音气体检测

智能安全帽是一种集成多种智能功能的产品&#xff0c;例如实时定位、语音对讲、健康监测和AI智能预警等。这些丰富的功能能够更好地帮助工人开展工作&#xff0c;并提升安全保障水平。智能安全帽在各个行业中的应用越来越广泛。尤其在工程建设领域&#xff0c;项目管理和工作安…...

TEMU跨境平台珠宝首饰RSL报告如何办理?

首饰或者产品TEMU拼多多跨境平台要求的RSL报告如何办理&#xff1f; 珠宝首饰上架前必须进行RSL Report&#xff08;欧盟禁限用化学物质检测报告&#xff09; 随着人们对珠宝首饰的要求越来越高&#xff0c;为了确保珠宝首饰的安全性&#xff0c;欧盟REACH法规规定&#xff0c…...

51单片机的篮球计分器液晶LCD1602显示( proteus仿真+程序+原理图+PCB+设计报告+讲解视频)

51单片机的篮球计分器液晶LCD1602显示 &#x1f4d1;1.主要功能&#xff1a;&#x1f4d1;讲解视频&#xff1a;&#x1f4d1;2.仿真&#x1f4d1;3. 程序代码&#x1f4d1;4. 原理图&#x1f4d1;5. PCB图&#x1f4d1;6. 设计报告&#x1f4d1;7. 设计资料内容清单&&…...

【NI-DAQmx入门】NI-DAQmx之Python

NI-DAQmx Python GitHub资源&#xff1a; NI-DAQmx Python 文档说明&#xff1a;NI-DAQmx Python Documentation — NI-DAQmx Python API 0.9 documentation nidaqmx支持 CPython 3.7和 PyPy3&#xff0c;需要注意的是多支持USB DAQ和PCI DAQ&#xff0c;cDAQ需要指定…...

YoloV8目标检测与实例分割——目标检测onnx模型推理

一、模型转换 1.onnxruntime ONNX Runtime&#xff08;ONNX Runtime或ORT&#xff09;是一个开源的高性能推理引擎&#xff0c;用于部署和运行机器学习模型。它的设计目标是优化执行使用Open Neural Network Exchange&#xff08;ONNX&#xff09;格式定义的模型&#xff0c;…...

pcigo图床插件的简单开发

1.前言&#xff1a; 如果想写一个图床并且投入使用&#xff0c;那么&#xff0c;接入picgo一定是一个不错的选择。picgo有着windows&#xff0c;mac&#xff0c;linux等多个客户端版本。实用且方便。 2. 开发的准备&#xff1a; 2.0. 需要安装一个node node这里我就不详细说…...

Find My手机保护壳|苹果Find My与手机保护壳结合,智能防丢,全球定位

随着科技水平的快速发展&#xff0c;科技美容这一行业做为新型产业新生而出。时尚IT品牌随着市场的多元化发展。针对手机品牌和功能的增加而呈多样化&#xff0c;将手机保护壳按质地分有PC壳&#xff0c;皮革 &#xff0c;硅胶&#xff0c;布料&#xff0c;硬塑&#xff0c;皮套…...

encode和decode的区别

字节序列和字符串是Python中两种不同的数据类型&#xff0c;它们的主要区别在于表示和处理方式&#xff01; 字节序列&#xff08;Bytes&#xff09;&#xff1a; 字节序列是一种二进制数据类型&#xff0c;它由一系列字节组成。字节是计算机存储信息的基本单位&#xff0c;每…...

建设项目管理中的 5 大预算挑战

为建设项目管理制定可靠、准确的预算是一项艰巨的任务&#xff0c;对于中小型建筑企业来说尤其如此。预算必须精确&#xff0c;同时还要考虑到每项工作的独特性和复杂性。 一项建筑行业相关调查统计了参与施工预算流程的人员所面临的最大挑战&#xff0c;分别是时间、预算、不…...

vue2 集成 - 超图-SuperMap iClient3D for WebGL

1:下载SuperMap iClient3D for WebGL SuperMap iClient3D for WebGL产品包 打开资源目录如下 2:格式化项目中所用的依赖包 开发指南 从超图官网下载SuperMap iClient3D 11i (2023) SP1 for WebGL_CN.zip解压后,将Build目录下的SuperMap3D复制到项目中 \public\static…...

FPGA设计过程中有关数据之间的并串转化

1.原理 并串转化是指的是完成串行传输和并行传输两种传输方式之间的转换的技术&#xff0c;通过移位寄存器可以实现串并转换。 串转并&#xff0c;将数据移位保存在寄存器中&#xff0c;再将寄存器的数值同时输出&#xff1b; 并转串&#xff0c;将数据先进行移位&#xff0…...

hologres基础知识一文全

1 功能特性 1.1多场景查询分析 Hologres支持行存、列存、行列共存等多种存储模式和索引类型,同时满足简单查询、复杂查询、即席查询等多样化的分析查询需求。Hologres使用大规模并行处理架构,分布式处理SQL,提高资源利用率,实现海量数据极速分析。 亚秒级交互式分析 Holo…...

阿里云oss迁移到AWS S3

这里写自定义目录标题 0.项目背景1.rclone 方式2.rsync方式3.注意 0.项目背景 公司迁移要求&#xff1a;从阿里云oss到亚马逊s3&#xff0c;数据量大概500G-2T左右。 开启阿里云oss 加速模式&#xff0c;这样能够跨机房和区域加速。 主要采用以下两种方式同步数据&#xff0c;…...

RabbitMQ(高级特性):限流

消费端限流 在rabbitmq中&#xff0c;使用消费端限流必须开启手动签收信息 过MQ可以对请求进行“削峰填谷”&#xff0c;即通过消费端限流的方式限制消息的拉取速度&#xff0c;达到保护消费端的目的。 生产者批量发送消息&#xff1a; Test public void testSendBatch() {…...

LeetCode--570. 至少有5名直接下属的经理

文章目录 1 题目描述2 测试用例3 解题思路3.1 解法 1 1 题目描述 表: Employee ---------------------- | Column Name | Type | ---------------------- | id | int | | name | varchar | | department | varchar | | managerId | in…...

Ubuntu20.04下安装Redis环境

apt安装Redis环境 更新apt-get安装镜像源 安装Redis sudo apt-get install -y redis-server设置密码 # 编辑Redis的配置文件redis.conf&#xff0c;如果不知道配置文件的位置可以执行whereis redis.conf查看 sudo vim /etc/redis/redis.conf取消文件中的requirepass注释&am…...

什么是用户体验测试? 为什么很重要?

在当今数字化时代&#xff0c;用户体验(User Experience&#xff0c;简称UX)已经成为产品成功的关键因素之一。无论是应用程序、网站、硬件设备还是软件&#xff0c;提供出色的用户体验不仅能够吸引更多用户&#xff0c;还能够增加用户满意度&#xff0c;提高品牌忠诚度&#x…...

Android 图片翻面动画

一、需求描述 项目需要实现塔罗牌的翻面效果&#xff0c;需要点击图片后&#xff0c;图片实现翻面&#xff0c;并且翻面过程中&#xff0c;替换成图片资源&#xff0c;类似于扑克牌翻面。 二、实现思路 图片实现翻面效果&#xff0c;并且在动画执行到一半&#xff08;刚好到图…...

如何恢复已删除的PDF文件?4个常用方法分享(含操作步骤)!

“不小心删除了一些比较重要的PDF文件&#xff0c;大家能不能帮帮忙呀&#xff1f;有没有方法可以恢复已经删除的PDF文件呢&#xff1f;” PDF文件在我们的日常工作和生活中扮演着重要的角色&#xff0c;我们可能经常都需要使用到它。但不可避免的是&#xff0c;我们在使用电脑…...

head first python 第一章-新代码更新pypi

目录 第一步&#xff1a;了解目录结构 第三部分&#xff1a;实操 第一步&#xff1a;了解目录结构 目录结构如下&#xff0c;需要自己构建12345文件。 文件1&#xff1a;.pypirc [distutils] index-servers pypipypitest[pypi] #这里的[]内容需要和上面保持一致&am…...

mysql之备份和恢复

&#xff08;一&#xff09;备份 1、备份的种类 &#xff08;1&#xff09;完全备份&#xff1a;将整个数据库完整的进行备份 &#xff08;2&#xff09;增量备份&#xff1a;在完全备份的基础上&#xff0c;对后续新增的内容进行备份 2、备份的需求 &#xff08;1&#x…...

【音视频 | Ogg】libogg库详细介绍以及使用——附带libogg库解析.opus文件的C源码

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…...

如何使用群晖NAS的Audio Station结合内网穿透实现远程访问本地曲库

文章目录 本教程解决的问题是&#xff1a;按照本教程方法操作后&#xff0c;达到的效果是本教程使用环境&#xff1a;1 群晖系统安装audiostation套件2 下载移动端app3 内网穿透&#xff0c;映射至公网 很多老铁想在上班路上听点喜欢的歌或者相声解解闷儿&#xff0c;于是打开手…...

要在CentOS中安装Docker

要在CentOS中安装Docker&#xff0c;请按照以下步骤进行操作&#xff1a; 首先&#xff0c;确保系统已更新到最新版本。运行以下命令&#xff1a; sudo yum update接下来&#xff0c;安装需要的软件包以允许使用HTTPS进行软件包下载。运行以下命令&#xff1a; sudo yum ins…...

Android Gldie复用只取之前decode过的缓存resource,Kotlin

Android Gldie复用只取之前decode过的缓存resource&#xff0c;Kotlin import android.graphics.Bitmap import android.os.Bundle import android.util.Log import android.widget.ImageView import androidx.appcompat.app.AppCompatActivity import androidx.lifecycle.life…...

EasyExcel实现动态表头功能

EasyExcel实现动态表头功能 开发过程中&#xff0c;大部分都会使用到导出报表功能&#xff0c;目前阶段会用得有 poi导出&#xff08;暂无&#xff09;&#xff0c; easyexcel导出&#xff08;官方文档&#xff0c;https://easyexcel.opensource.alibaba.com/docs/current/&am…...

Python | 安装、环境配置及包的安装

Python | 安装、环境配置及包的安装 一、前言二、python安装及编辑器配置2.1 python安装2.2 python调试2.3 python编辑器 | PyCharm2.3.1 PyCharm下载2.3.2 PyCharm安装2.3.3 PyCharm启动界面2.3.4 PyCharm初步设置2.3.5 PyCharm环境配置(含Python Interpreter配置)2.3.5.1 New…...

CentOS 7 安装 JDK17(注意版本号要与自己的版本一致)

查看是否有自带的 JDK java -versionrpm -qa | grep jdk卸载自带 JDK rpm -e --nodeps [name] # 如 rpm -e --nodeps java-1.8.0-openjdk-1.8.0.242.b08-1.el7.x86_64查看自带 JDK 是否卸载干净 java -versionrpm -qa | grep jdk在 oracle 官网下载自己所需 JDK 版本&#x…...