跳到内容
CrossFly 是 100% 开源在 GitHub 关注我们
CrossFlyCrossFly
开始使用

本页面由葡萄牙语机器翻译,可能存在错误。葡萄牙语版本为准。

快速开始: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 个要点

  1. 界面 = Window 的子类。 应用的每个界面都是一个 Window。
  2. UI 在 onShow() 中构建,而不是在构造函数中(那里 bounds 还无效)—— 并且始终 要调用 super.onShow()。
  3. 一切皆 Component,而 add(tamanho, comp) 将排布委托给 Layout(LAY_AUTO=自然尺寸, LAY_FILL=填满剩余空间)。
  4. MainWindow 通过 classname 指定(见 项目剖析)。

没有响应式绑定:点击改变 Label(setText)—— 你要手动更新 UI。这是 CrossFly 的 命令式模型(见 状态与数据流)。

下一步

→ 你的第一个应用(引导式,端到端)

另请参阅

这个页面有帮助吗?