Stage模型应用程序包结构

目录

官网地址 

官网结构图

 开发态包结构

 工程目录结构

  配置文件

module.json5配置文件

 app.json5配置文件


官网地址 

 官网地址 包结构

官网结构图

 开发态包结构

在DevEco Studio上创建一个项目工程,并尝试创建多个不同类型的Module(类似一个一个的页面块)

说明

  • AppScope目录由DevEco Studio自动生成,不可更改。
  • Module目录名称可以由DevEco Studio自动生成(比如entry、library等),也可以自定义。为了便于说明,下表中统一采用Module_name表示。

1

 工程目录结构

官网文档工程目录结构

  • AppScope > app.json5:应用的全局配置信息。
  •  entry:应用/服务模块,编译构建生成一个HAP。
    • src > main > ets:用于存放ArkTS源码。
    • src > main > ets > entryability:应用/服务的入口。
    • src > main > ets > pages:应用/服务包含的页面。
    • src > main > resources:用于存放应用/服务模块所用到的资源文件,如图形、多媒体、字符串、布局文件等。关于资源文件的详细说明请参考资源分类与访问

资源目录

资源文件说明

base>element

包括字符串、整型数、颜色、样式等资源的json文件。每个资源均由json格式进行定义,例如:

  • boolean.json:布尔型
  • color.json:颜色
  • float.json:浮点型
  • intarray.json:整型数组
  • integer.json:整型
  • pattern.json:样式
  • plural.json:复数形式
  • strarray.json:字符串数组
  • string.json:字符串值

base>media

多媒体文件,如图形、视频、音频等文件,支持的文件格式包括:.png.gif.mp3.mp4等。

rawfile

用于存储任意格式的原始资源文件。rawfile不会根据设备的状态去匹配不同的资源,需要指定文件路径和文件名进行引用。

  • src > main > module.json5:Stage模型模块配置文件,主要包含HAP的配置信息、应用在具体设备上的配置信息以及应用的全局配置信息。具体请参考module.json5配置文件
  • build-profile.json5:当前的模块信息、编译信息配置项,包括buildOption、targets配置等。

build-profile.json5文件分为工程级模块级,其中buildOption在工程级文件和模块级文件均可配置,其中相同字段以模块级的字段为准,不同字段模块级的buildOption配置会继承工程级配置。

  • hvigorfile.ts:模块级编译构建任务脚本。
  • oh-package.json5:描述三方包的包名、版本、入口文件(类型声明文件)和依赖项等信息。

从OHPM 5.0.0版本开始,支持区分工程级与模块级oh-package.json5配置。其中:

  • 工程级oh-package.json5文件:位于工程根目录下,主要用来描述全局配置,如:依赖覆盖(overrides)、依赖关系重写(overrideDependencyMap)和参数化配置(parameterFile)等,详情请见:工程级oh-package.json5 字段说明
  • 模块级oh-package.json5文件:位于工程各个模块的根目录下,用来描述包名、版本、入口文件(类型声明文件)和依赖项等信息,详情请见:模块级oh-package.json5 字段说明

 

  • oh_modules:用于存放三方库依赖信息,包含应用/服务所依赖的第三方库文件。

  配置文件

包括应用级配置信息、以及Module级配置信息:

AppScope > app.json5app.json5配置文件,用于声明应用的全局配置信息,比如应用Bundle名称、应用名称、应用图标、应用版本号等。

Module_name > src > main > module.json5module.json5配置文件,用于声明Module基本信息、支持的设备类型、所含的组件信息、运行所需申请的权限等。

 

module.json5配置文件

官网地址module.json5配置文件

 具体看官网,这里只列出部分

属性名称含义数据类型是否可缺省
name

标识当前Module的名称,确保该名称在整个应用中唯一。取值为长度不超过31字节的字符串,不支持中文

应用升级时允许修改该名称,但需要应用适配Module相关数据目录的迁移,详见文件管理接口

字符串该标签不可缺省。
type

标识当前Module的类型。支持的取值如下:

- entry:应用的主模块。

- feature:应用的动态特性模块。

- har:静态共享包模块。

- shared:动态共享包模块。

字符串该标签不可缺省。
description

标识当前Module的描述信息,取值为长度不超过255字节的字符串,可以采用字符串资源索引格式

例如;

"description": "$string:module_desc",
字符串该标签可缺省,缺省值为空。
mainElement标识当前Module的入口UIAbility名称或者ExtensionAbility名称,取值为长度不超过255字节的字符串。字符串该标签可缺省,缺省值为空。
deviceTypes标识当前Module可以运行在哪类设备上。字符串数组该标签不可缺省。
deliveryWithInstall

标识当前Module是否在用户主动安装的时候安装,即该Module对应的HAP是否跟随应用一起安装。

- true:主动安装时安装。

- false:主动安装时不安装。

布尔值该标签不可缺省。
installationFree

标识当前Module是否支持免安装特性。

- true:表示支持免安装特性,且符合免安装约束。

- false:表示不支持免安装特性。

说明:

bundleType为元服务时,该字段需要配置为true。反之,该字段需要配置为false。

布尔值该标签不可缺省。
pages

标识当前Module的profile资源,用于列举每个页面信息,取值为长度不超过255字节的字符串。

例如

"pages": "$profile:main_pages",

// 通过profile下的资源文件配置

字符串在有UIAbility的场景下,该标签不可缺省。
requestPermissions

标识当前应用运行时需向系统申请的权限集合。

例如:网络权限

"requestPermissions": [{
  "name": "ohos.permission.INTERNET",
}],
对象数组该标签可缺省,缺省值为空。
abilities标识当前Module中UIAbility的配置信息,只对当前UIAbility生效。对象数组该标签可缺省,缺省值为空

 app.json5配置文件

官网地址app.json5配置文件icon-default.png?t=N7T8https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/app-configuration-file-V5

  • 16
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
辽B代驾管理系统对代驾订单管理、用户咨询管理、代驾订单评价管理、代驾订单投诉管理、字典管理、论坛管理、公告管理、新闻信息管理、司机管理、用户管理、管理员管理等进行集中化处理。经过前面自己查阅的网络知识,加上自己在学校课堂上学习的知识,决定开发系统选择小程序模式这种高效率的模式完成系统功能开发。这种模式让操作员基于浏览器的方式进行网站访问,采用的主流的Java语言这种面向对象的语言进行辽B代驾管理系统程序的开发,在数据库的选择上面,选择功能强大的Mysql数据库进行数据的存放操作。辽B代驾管理系统的开发让用户查看代驾订单信息变得容易,让管理员高效管理代驾订单信息。 辽B代驾管理系统具有管理员角色,用户角色,这几个操作权限。 辽B代驾管理系统针对管理员设置的功能有:添加并管理各种类型信息,管理用户账户信息,管理代驾订单信息,管理公告信息等内容。 辽B代驾管理系统针对用户设置的功能有:查看并修改个人信息,查看代驾订单信息,查看公告信息等内容。 辽B代驾管理系统针对管理员设置的功能有:添加并管理各种类型信息,管理用户账户信息,管理代驾订单信息,管理公告信息等内容。 辽B代驾管理系统针对用户设置的功能有:查看并修改个人信息,查看代驾订单信息,查看公告信息等内容。 系统登录功能是程序必不可少的功能,在登录页面必填的数据有两项,一项就是账号,另一项数据就是密码,当管理员正确填写并提交这二者数据之后,管理员就可以进入系统后台功能操作区。项目管理页面提供的功能操作有:查看代驾订单,删除代驾订单操作,新增代驾订单操作,修改代驾订单操作。公告信息管理页面提供的功能操作有:新增公告,修改公告,删除公告操作。公告类型管理页面显示所有公告类型,在此页面既可以让管理员添加新的公告信息类型,也能对已有的公告类型信息执行编辑更新,失效的公告类型信息也能让管理员快速删除。新闻管理页面,此页面提供给管理员的功能有:新增新闻,修改新闻,删除新闻。新闻类型管理页面,此页面提供给管理员的功能有:新增新闻类型,修改新闻类型,删除新闻类型。
### 回答1: 在 JavaFX 的应用程序中拖动 Stage 可以使用下列步骤进行操作: 1. 在 Scene 对象上添加鼠标事件监听器,例如鼠标按下和鼠标拖动事件。 2. 在鼠标按下事件的处理方法中,记录鼠标按下时的屏幕坐标和 Stage 当前的坐标,用于在鼠标拖动事件中计算新的 Stage 坐标。 3. 在鼠标拖动事件的处理方法中,计算新的 Stage 坐标,并使用 Stage 的 setX() 和 setY() 方法更新 Stage 的坐标。 例如,可以使用以下代码实现拖动 Stage 的功能: ``` // 为 Scene 添加鼠标事件监听器 scene.setOnMousePressed(new EventHandler<MouseEvent>() { @Override public void handle(MouseEvent event) { // 记录鼠标按下时的屏幕坐标和 Stage 当前的坐标 xOffset = event.getScreenX() - stage.getX(); yOffset = event.getScreenY() - stage.getY(); } }); scene.setOnMouseDragged(new EventHandler<MouseEvent>() { @Override public void handle(MouseEvent event) { // 更新 Stage 的坐标 stage.setX(event.getScreenX() - xOffset); stage.setY(event.getScreenY() - yOffset); } }); ``` 在上面的代码中,xOffset 和 yOffset 分别记录鼠标按下时屏幕坐标与 Stage 当前坐标之差,在鼠标拖动事件中,使用当前鼠标的屏幕坐标减去 xOffset 和 yOffset 计算新的 Stage 坐标,并使 ### 回答2: 在JavaFX的应用程序中,可以通过以下几个步骤实现拖动Stage: 1. 首先,需要为Stage添加一个鼠标按下事件的监听器。可以使用如下代码实现: ``` stage.addEventHandler(MouseEvent.MOUSE_PRESSED, event -> { xOffset = event.getSceneX(); yOffset = event.getSceneY(); }); ``` 在上述代码中,xOffset和yOffset是用来保存鼠标按下时的坐标位置的变量。 2. 接下来,需要为Stage添加一个鼠标拖拽事件的监听器。可以使用如下代码实现: ``` stage.addEventHandler(MouseEvent.MOUSE_DRAGGED, event -> { stage.setX(event.getScreenX() - xOffset); stage.setY(event.getScreenY() - yOffset); }); ``` 在上述代码中,setX()和setY()方法用于设置Stage的位置,event.getScreenX()和event.getScreenY()用于获取鼠标当前的屏幕坐标。 3. 最后,为了能够实现整个拖拽过程,还需要监听鼠标释放事件。可以使用如下代码实现: ``` stage.addEventHandler(MouseEvent.MOUSE_RELEASED, event -> { xOffset = 0; yOffset = 0; }); ``` 在上述代码中,将xOffset和yOffset重置为0,以便下次拖拽时重新计算新的偏移量。 通过完成以上三个步骤,即可在JavaFX应用程序中实现拖动Stage的功能。当鼠标按下、拖拽和释放时,Stage会随着鼠标的移动而跟随移动。 ### 回答3: 在JavaFX的应用程序中,要实现拖动Stage可以按照以下步骤进行: 1. 获取Stage对象:通过场景(Scene)获取Stage对象,可以使用`getStage()`方法。 2. 设置鼠标按下事件:使用`setOnMousePressed()`方法设置鼠标按下事件监听器。在事件处理程序中,记录鼠标按下时的坐标。 3. 设置鼠标拖动事件:使用`setOnMouseDragged()`方法设置鼠标拖动事件监听器。在事件处理程序中,计算鼠标的偏移量,并将Stage的位置更新为鼠标当前位置与偏移量之和。 4. 设置鼠标松开事件:使用`setOnMouseReleased()`方法设置鼠标松开事件监听器,不进行特殊处理。 下面是一个简单的实现示例: ```java import javafx.application.Application; import javafx.scene.Scene; import javafx.stage.Stage; public class DraggableStage extends Application { private double xOffset; private double yOffset; @Override public void start(Stage stage) throws Exception { // 创建场景 Scene scene = new Scene(new StackPane(), 400, 300); // 设置鼠标按下事件 scene.setOnMousePressed(event -> { xOffset = event.getSceneX(); yOffset = event.getSceneY(); }); // 设置鼠标拖动事件 scene.setOnMouseDragged(event -> { stage.setX(event.getScreenX() - xOffset); stage.setY(event.getScreenY() - yOffset); }); // 设置舞台和场景 stage.setScene(scene); stage.show(); } public static void main(String[] args) { launch(args); } } ``` 上述示例中,当鼠标按下时记录了鼠标按下的坐标(相对于场景),然后在鼠标拖动事件中计算鼠标的偏移量,并将舞台的位置更新为当前鼠标位置与偏移量之和。这样就实现了拖动Stage的效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值