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.

Cómo vibrar, emitir un beep y usar el portapapeles

Propósito. Dar feedback rápido al usuario: vibrar el aparato, reproducir un beep y copiar/pegar texto en el portapapeles.

APIs usadas

  • Device.vibrate(int millis) — vibra durante millis ms. En iOS la duración se ignora (no hay forma de definir el tiempo en esa plataforma).
  • Device.beep() — reproduce el sonido beep.mp3 precargado. No bloquea (agenda la reproducción en la render thread).
  • Device.clipboardCopy(String s) — copia la cadena al portapapeles.
  • Device.clipboardPaste() → String — devuelve la última cadena del portapapeles, o "" si está vacío.

Nota. Todos son métodos estáticos de Device. Son seguros para llamar desde cualquier thread (beep() internamente agenda en la render thread). clipboardPaste() nunca devuelve null — devuelve una cadena vacía cuando no hay nada.

Ejemplo completo (copiar, pegar y ejecutar)

package com.exemplo;

import dev.crossfly.ui.*;                   // Window, Button, Label
import dev.crossfly.ui.layout.*;            // VerticalLayout
import dev.crossfly.device.*;               // Device

/** 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 resultado = new Label("");
      add(LAY_AUTO, resultado);

      Button acao = new Button("Vibrar, beep e copiar");
      acao.onAction(c ->
      {
         // Feedback táctil y sonoro (métodos estáticos, seguros desde cualquier thread)
         Device.vibrate(50);       // 50ms (ignorado en iOS)
         Device.beep();            // no bloquea

         // Portapapeles
         Device.clipboardCopy("Texto para copiar");
         String colado = Device.clipboardPaste();   // "" si el clipboard está vacío

         resultado.setText("Clipboard: " + colado);
      });
      add(LAY_AUTO, acao);
   }
}

El fragmento de abajo muestra solo el núcleo. Para ejecutarlo, colócalo en el esqueleto MainWindow de arriba.

Fragmento mínimo

// verificado en la fuente: Device.java (vibrate línea 253, beep línea 306, clipboardCopy línea 271, clipboardPaste línea 279)
import dev.crossfly.device.*;              // Device

// Feedback táctil y sonoro
Device.vibrate(50);       // 50ms (ignorado en iOS)
Device.beep();            // no bloquea

// Portapapeles
Device.clipboardCopy("Texto para copiar");
String colado = Device.clipboardPaste();   // "" si el clipboard está vacío

Profundiza

¿Te resultó útil esta página?