MCIO Plugins MCIO Plugins
首页
赞助
无法下载? (opens new window)

人间工作P

我每天都好困… 最近在学习和进行 VOCALOID 创作
首页
赞助
无法下载? (opens new window)
  • PluginBase

  • Item-NBT-API

  • VectorDisplays

    • VectorDisplays 简介
    • 内嵌依赖
    • 控件定位
    • 动态添加元素
    • 界面元素介绍

      • 通用界面元素
      • Label 标签
      • Button 按钮
      • Item 物品
      • Line 线条
    • 使用案例
  • 开发文档
  • VectorDisplays
  • 界面元素介绍
2025-09-22

Button 按钮

top.mrxiaom.hologram.vector.displays.ui.widget.Button (opens new window)

按钮就是一个加了点击事件和准星悬停事件的标签,可以让玩家的准星悬停到按钮上时,触发按钮的样式变化,移开则复原。通过计算出三维空间中按钮矩形的平面与具体区域,使用射线计算来实现这个功能。

这个元素使用单个文本展示实体构成。基于 TextElement,可以查阅界面通用元素文档来查看基础通用的属性。可以直接通过 new 来实例化一个标签,具体用法请见上方 Javadoc 相关文档。

Button 额外可用的属性依然只有一个 text,可以使用字符串来按 MiniMessage 解析,也可以使用 Component 来使用更精确的富文本格式。

Button 可以设置点击事件和悬停状态变化事件,为了旧版本兼容着想,setOnClick 和 setOnElementClick 是同一个方法的不同包装,用法如下:

java
//e.setOnElementClick((meta, btn) -> {
e.setOnClick((meta, btn) -> {
    // 点击执行操作,可以从 meta 中拿到这次点击的相应元数据
    meta.getPlayer();
    meta.getAction();
    btn.getId();
})

需要设置悬停状态变化事件,使用 setOnHoverStateChange,其简单用法基本都包装在 HoverStateChange (opens new window) 接口中了,详见 Javadoc 中以 hover 开头的静态方法

java
// 悬停时显示 50% 透明度黑色背景,不悬停时显示完全透明背景
e.setOnHoverStateChange(hoverBg(0x80000000, 0));

一个简单用例:

java
terminal.addElement(new Button("button1"), e -> {
    e.setText("<#FF0000>测试");
    e.setScale(0.25f);
    e.setPos(10, 0);
    e.setFullBrightness();
    e.setOnHoverStateChange(hoverBg(0x80000000, 0));
    e.setOnClick((meta, e) -> {
        meta.getPlayer().sendMessage("你以 " + meta.getAction() + " 方式点击了按钮 " + e.getId());
    });
});
上次更新: 2026/08/11, 03:39:33
Label 标签
Item 物品

← Label 标签 Item 物品→

使用主题 Vdoing | Copyright © 2018-2026 人间工作P | 到赞助页面支持我 | 60cbebc

除非特别说明,本站点所有文章均以 CC BY-SA 协议授权

《我的世界》和《Minecraft》是微软公司和 Mojang Synergies AB 的商标,本站点与微软公司等没有从属关系。

  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式