本页面由葡萄牙语机器翻译,可能存在错误。葡萄牙语版本为准。
项目剖析
在动手修改之前,先理解生成“骨架”的东西。
Gradle 模块
:core → código compartilhado: suas Windows, componentes, lógica, dados
:lwjgl3 → launcher desktop
:android → launcher Android
:ios → launcher iOS (RoboVM)
:web → launcher Web (TeaVM)
你几乎总是在 core 中编程。每个启动器只做操作系统的 bootstrap —— 实例化 Main
并配置窗口(见 平台)。
MainWindow 如何解析
Main 通过反射实例化主窗口:
- 使用
cmdline["classname"]中指定的类(由启动器传入);或者 - 在缺失该值时,使用被重写的
getMainWindow()。
要求:该类需要一个公共的无参构造函数(它是通过反射实例化的)。
完整示例(复制、粘贴、运行)
最小且可执行的 MainWindow 类,带有反射所要求的无参构造函数:
package com.exemplo;
import dev.crossfly.ui.*;
import dev.crossfly.ui.layout.*;
public class MainWindow extends Window
{
public MainWindow() { } // 无参构造函数(反射所必需)
@Override
public void onShow() throws Exception
{
super.onShow();
setLayout(new VerticalLayout());
add(LAY_AUTO, new Label("MainWindow resolvida por classname"));
}
}
建议的应用组织方式
在 core 内,一个可扩展的结构(见 应用架构):
app/
├─ ui/screens/ → suas Windows (uma tela = uma Window)
├─ ui/components/ → componentes reutilizáveis
├─ data/ → repositórios (SQLite, rede)
└─ model/ → objetos de domínio
资源与字体
基础字体(Roboto、FontAwesome、Material)在 bootstrap 时加载;你的资源(图片、 数据)放在项目的资源目录中,并通过路径读取(见 图片)。
下一步
另请参阅
这个页面有帮助吗?感谢你的反馈!