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,带背景、显示不同字体、不同颜色文本等。

posted @ 2024-07-12 14:17  JhonKkk  阅读(34)  评论(0)    收藏  举报