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

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

FilePicker

🔴 · 包: dev.crossfly.ui.picker · 继承: Picker · 状态:预留(不可用)

FilePicker 在 2026 API 中处于预留状态:在当前代码中它只是一个空骨架 ——

public class FilePicker extends Picker {}

—— 没有构造函数、字段、布局或自己的 getAnswer()。它继承了基类的 getAnswer()(Picker),该方法返回 null;因此它不产生任何结果,不应被使用。

完整示例(复制、粘贴并运行)

FilePicker 处于预留状态,不产生结果(继承基类的 getAnswer(),返回 null)。下面的示例是可执行的,并诚实地演示了这一限制:它显示 picker,收集 getAnswer(),并报告返回值为 null。要真正选择媒体,旁边的按钮使用可用的替代方案 PhotoPicker。

package com.exemplo;

import dev.crossfly.ui.*;
import dev.crossfly.ui.layout.*;
import dev.crossfly.ui.picker.*;

/** 可执行的主界面。将 launcher 指向此类(classname)并运行:gradlew :lwjgl3:run */
public class MainWindow extends Window
{
   @Override
   public void onShow() throws Exception
   {
      super.onShow();
      setLayout(new VerticalLayout());

      Label saida = new Label("Resultado: —");
      add(LAY_AUTO, saida);

      // FilePicker 是一个预留的骨架:getAnswer() 始终返回 null。
      Button tentarFilePicker = new Button("Tentar FilePicker (reservado)")
         .onAction(c ->
         {
            FilePicker fp = new FilePicker();
            fp.show(answer ->
               saida.setText("FilePicker devolveu: " + answer + " (reservado, sem resultado)"));
         });
      add(LAY_AUTO, tentarFilePicker);

      // 捕获媒体的真实替代方案:PhotoPicker。
      Button usarPhotoPicker = new Button("Alternativa: PhotoPicker")
         .onAction(c ->
         {
            PhotoPicker pp = new PhotoPicker(PhotoPicker.Preview.PHOTO);
            pp.show(answer ->
            {
               String caminho = (String) answer;
               if (pp.isError())
                  saida.setText("Erro de câmera: " + caminho);
               else
                  saida.setText("Foto salva em: " + caminho);
            });
         });
      add(LAY_AUTO, usarPhotoPicker);
   }
}

下面的片段只展示核心部分(放入 onShow() 内的内容)。要运行它们,请将其放入上面的 MainWindow 骨架中。

预期目标

浏览文件系统并返回所选文件/文件夹的路径。源码中的注释表明其意图是从基于 root 的惰性树选择器迁移过来 —— 但这尚未移植。

不存在的内容(不要将其记录为可用)

先前的实现(使用 Tree/TreeModel 的惰性树、图片预览、通过 Dropdown 的卷、多选)已被移除,这与现代化改造中移除 ui/tree 模块相一致。旧的 API —— Filter、initialPath、multipleSelection、mountTree、getTree 等 —— 均已不存在。

预留期间的替代方案

  • 要从相机捕获媒体,请使用 PhotoPicker。
  • 要选择颜色/日期/时间,请使用相应的专用 picker。
  • 在代码充实之前,请将 FilePicker 视为不可用。

另请参阅

这个页面有帮助吗?