JMonkeyEngine3——NiftyGui Label
Label

标签显示可通过 Java 更改的文本。它可通过 Java 的 LabelBuilder 动态创建,也可通过 Nifty XML 的标准 <control name="label"></control> 标签创建。
常用属性
| Name | Datatype | Default | Description |
| text | String | "" | 要显示的初始标签文本。 |
| color | String | (未设置,默认值源自 nifty-label 样式) | 标签的颜色。 |
EventBus Notification
Label 控件不需要 EventBus 通知。
JavaBuilder示例
1 // Using the builder pattern 2 control(new LabelBuilder("keyEventLabelId", "Label Text:");
XML示例
1 <!-- simple label --> 2 <control name="label" text="hello" />
参考
https://github.com/nifty-gui/nifty-gui/wiki/Label
案例
如下是一个演示案例,xml和java代码分别如下:
1 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> 2 <nifty xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://nifty-gui.lessvoid.com/nifty-gui" xsi:schemaLocation="https://raw.githubusercontent.com/void256/nifty-gui/1.4/nifty-core/src/main/resources/nifty.xsd https://raw.githubusercontent.com/void256/nifty-gui/1.4/nifty-core/src/main/resources/nifty.xsd"> 3 <useControls filename="nifty-default-controls.xml"/> 4 <useStyles filename="nifty-default-styles.xml"/> 5 <screen id="screen0"> 6 <layer id="layer0" childLayout="center"> 7 <control name="label" id="label0" text="Hello,Label" height="68px" color="#ff0033ff" backgroundColor="#00000055" font="aurulent-sans-16.fnt" width="178px" backgroundImage="Textures/bg.png" y="-1px" x="-1px"/> 8 </layer> 9 </screen> 10 </nifty>
我们通过color属性设置字体颜色,backgroundColor设置label颜色半透,这样才能显示label的背景图,然后通过backgroundImage设置背景图,图片位于Textures/目录下:

1 import com.jme3.app.SimpleApplication; 2 import com.jme3.math.ColorRGBA; 3 import com.jme3.niftygui.NiftyJmeDisplay; 4 import de.lessvoid.nifty.Nifty; 5 6 /** 7 * @date 2024年7月12日14点08分 8 * @author JohnKkk 9 */ 10 public class NiftyGuiLabel extends SimpleApplication{ 11 12 private Nifty m_Nifty; 13 14 public static void main(String[] args) { 15 NiftyGuiLabel niftyGuiLabel = new NiftyGuiLabel(); 16 niftyGuiLabel.start(); 17 } 18 19 @Override 20 public void simpleInitApp() { 21 // 设置默认背景色 22 getViewPort().setBackgroundColor(ColorRGBA.DarkGray); 23 24 // 初始化Nifty 25 NiftyJmeDisplay niftyDisplay = NiftyJmeDisplay.newNiftyJmeDisplay( 26 assetManager, 27 inputManager, 28 audioRenderer, 29 guiViewPort); 30 m_Nifty = niftyDisplay.getNifty(); 31 // 将NiftyGUI显示对象添加到JME3中 32 guiViewPort.addProcessor(niftyDisplay); 33 34 m_Nifty.fromXml("Interface/NiftyGuiLabel.xml", "screen0"); 35 36 // 禁用flyCam并显示鼠标 37 flyCam.setEnabled(false); 38 inputManager.setCursorVisible(true); 39 } 40 41 }
启动JME3程序,结果如下:

我们可以非常轻松的定义各种类型的label,带背景、显示不同字体、不同颜色文本等。

浙公网安备 33010602011771号