Como vibrar, emitir beep e usar a área de transferência
Propósito. Dar feedback rápido ao usuário: vibrar o aparelho, tocar um beep e copiar/colar texto na área de transferência.
APIs usadas
Device.vibrate(int millis)— vibra pormillisms. No iOS a duração é ignorada (não há como definir tempo nessa plataforma).Device.beep()— toca o sombeep.mp3pré-carregado. Não bloqueia (agenda o play na render thread).Device.clipboardCopy(String s)— copia a string para a área de transferência.Device.clipboardPaste()→String— devolve a última string do clipboard, ou""se vazio.
Nota. Todos são métodos estáticos de
Device. São seguros para chamar de qualquer thread (beep()internamente agenda na render thread).clipboardPaste()nunca retornanull— retorna string vazia quando não há nada.
Exemplo completo (copiar, colar e rodar)
package com.exemplo;
import dev.crossfly.ui.*; // Window, Button, Label
import dev.crossfly.ui.layout.*; // VerticalLayout
import dev.crossfly.device.*; // Device
/** Tela principal executável. Aponte o launcher (classname) e rode: 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átil e sonoro (métodos estáticos, seguros de qualquer thread)
Device.vibrate(50); // 50ms (ignorado no iOS)
Device.beep(); // não bloqueia
// Área de transferência
Device.clipboardCopy("Texto para copiar");
String colado = Device.clipboardPaste(); // "" se o clipboard estiver vazio
resultado.setText("Clipboard: " + colado);
});
add(LAY_AUTO, acao);
}
}
O trecho abaixo mostra só o miolo. Para rodar, coloque-o no esqueleto
MainWindowacima.
Trecho mínimo
// verificado na fonte: Device.java (vibrate linha 253, beep linha 306, clipboardCopy linha 271, clipboardPaste linha 279)
import dev.crossfly.device.*; // Device
// Feedback tátil e sonoro
Device.vibrate(50); // 50ms (ignorado no iOS)
Device.beep(); // não bloqueia
// Área de transferência
Device.clipboardCopy("Texto para copiar");
String colado = Device.clipboardPaste(); // "" se o clipboard estiver vazio
Aprofunde-se
- Guia de som e diversos: Som e diversos
- Receita irmã: tts-stt.md
Esta página foi útil?Obrigado pelo feedback!