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

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

如何振动、发出蜂鸣声并使用剪贴板

目的。 向用户提供快速反馈:让设备振动、播放一声蜂鸣并 在剪贴板中复制/粘贴文本。

使用的 API

  • Device.vibrate(int millis) — 振动 millis 毫秒。在 iOS 上时长会被忽略(该平台无法设置时长)。
  • Device.beep() — 播放预加载的 beep.mp3 声音。不阻塞(在 render thread 上调度播放)。
  • Device.clipboardCopy(String s) — 把字符串复制到剪贴板。
  • Device.clipboardPaste() → String — 返回剪贴板中最近的字符串,若为空则返回 ""。

说明。 它们都是 Device 的静态方法。可以安全地从任意线程调用 (beep() 内部在 render thread 上调度)。clipboardPaste() 永远不会返回 null—— 当没有任何内容时返回空字符串。

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

package com.exemplo;

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

/** 可执行的主界面。将 launcher 指向此类(classname)并运行: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 ->
      {
         // 触觉与声音反馈(静态方法,任意线程调用都安全)
         Device.vibrate(50);       // 50ms(iOS 上忽略)
         Device.beep();            // 不阻塞

         // 剪贴板
         Device.clipboardCopy("Texto para copiar");
         String colado = Device.clipboardPaste();   // 剪贴板为空时返回 ""

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

下面的片段仅展示核心部分。要运行它,请把它放入上面的 MainWindow 骨架中。

最小片段

// 已在源码验证:Device.java (vibrate 第 253 行, beep 第 306 行, clipboardCopy 第 271 行, clipboardPaste 第 279 行)
import dev.crossfly.device.*;              // Device

// 触觉与声音反馈
Device.vibrate(50);       // 50ms(iOS 上忽略)
Device.beep();            // 不阻塞

// 剪贴板
Device.clipboardCopy("Texto para copiar");
String colado = Device.clipboardPaste();   // 剪贴板为空时返回 ""

深入了解

这个页面有帮助吗?