Saltar al contenido
CrossFly es 100% open sourceSíguenos en GitHub
CrossFlyCrossFly
Empezar

Esta página fue traducida automáticamente del portugués y puede contener errores. La versión en portugués es la canónica.

FilePicker

🔴 · Paquete: dev.crossfly.ui.picker · Extiende: Picker · Estado: reservado (no disponible)

FilePicker está reservado en la API 2026: en el código actual es solo un esqueleto vacío —

public class FilePicker extends Picker {}

— sin constructores, campos, layout ni getAnswer() propio. Hereda el getAnswer() de la base (Picker), que devuelve null; por lo tanto no produce resultado y no debe usarse.

Ejemplo completo (copiar, pegar y ejecutar)

FilePicker está reservado y no produce resultado (hereda getAnswer() de la base, que devuelve null). El ejemplo siguiente es ejecutable y demuestra honestamente esa limitación: muestra el picker, recoge el getAnswer() e informa que vino null. Para elegir medios de verdad, el botón contiguo usa la alternativa disponible, PhotoPicker.

package com.exemplo;

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

/** Pantalla principal ejecutable. Apunta el launcher (classname) y corre: 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 es un esqueleto reservado: getAnswer() siempre devuelve 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);

      // Alternativa real para capturar medios: 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);
   }
}

Los fragmentos siguientes muestran solo el núcleo (lo que va dentro de onShow()). Para ejecutar, colócalos en el esqueleto MainWindow de arriba.

Objetivo previsto

Navegar el sistema de archivos y devolver la ruta del archivo/carpeta seleccionado. El comentario en el fuente indica la intención de migrar desde un selector basado en árbol lazy a partir de un root — pero eso todavía no se ha portado.

Lo que NO existe (no lo documentes como disponible)

La implementación anterior (árbol lazy con Tree/TreeModel, previsualización de imagen, volúmenes vía Dropdown, selección múltiple) fue eliminada, coherente con la eliminación del módulo ui/tree en la modernización. Las APIs antiguas — Filter, initialPath, multipleSelection, mountTree, getTree, etc. — ya no existen.

Alternativas mientras está reservado

  • Para capturar medios de la cámara, usa PhotoPicker.
  • Para elegir un color/fecha/hora, usa los pickers específicos.
  • Trata FilePicker como no disponible hasta que el código tenga cuerpo.

Ver también

¿Te resultó útil esta página?