本页面由葡萄牙语机器翻译,可能存在错误。葡萄牙语版本为准。
快速开始:Hello World
那个“跑起来了!“的时刻。读完本页,你将拥有一个在桌面端运行的可交互应用。
完整示例(复制、粘贴、运行)
创建你的主窗口——一个 dev.crossfly.ui.Window 的子类:
package com.exemplo.app;
import dev.crossfly.ui.*;
import dev.crossfly.ui.layout.*;
public class MainWindow extends Window {
@Override
public void onShow() throws Exception {
super.onShow(); // 必需:有效的 bounds + 触发 onAdd
setLayout(new VerticalLayout());
Label saudacao = new Label("Olá, CrossFly!");
Button botao = new Button("Clique");
botao.onAction(c -> saudacao.setText("Você clicou!")); // 在 paint thread 上运行
add(LAY_AUTO, saudacao); // LAY_AUTO = 自然高度
add(LAY_AUTO, botao);
}
}
运行
gradlew :lwjgl3:run
一个窗口打开,显示文本和按钮;点击会切换文本。🎉
支撑其余一切的 4 个要点
- 界面 =
Window的子类。 应用的每个界面都是一个Window。 - UI 在
onShow()中构建,而不是在构造函数中(那里 bounds 还无效)—— 并且始终 要调用super.onShow()。 - 一切皆
Component,而add(tamanho, comp)将排布委托给Layout(LAY_AUTO=自然尺寸,LAY_FILL=填满剩余空间)。 MainWindow通过 classname 指定(见 项目剖析)。
没有响应式绑定:点击改变
Label(setText)—— 你要手动更新 UI。这是 CrossFly 的 命令式模型(见 状态与数据流)。
下一步
另请参阅
这个页面有帮助吗?感谢你的反馈!