
8
0
Bento GUI
Bento GUI is an expressive GUI library that makes building dynamic screens fast and easy. It is a replacement for Minecraft’s UI widgets that is inspired by HTML and CSS.
Features:
- Many UI elements provided out of the box
- Build elements using the builder pattern
- Robust layout engine with min/max and auto-computed dimensions
- Customizable element rendering
Bento GUI is documented in-code with JavaDocs and on my wiki.
@Environment(EnvType.CLIENT)
public class MyScreen extends Screen {
public MyScreen() {
super(Text.literal("My Screen"));
}
@Override
protected void init() {
Window window = client.getWindow();
int width = window.getScaledWidth();
int height = window.getScaledHeight();
// The root panel that will contain everything
Panel root = Panel.builder()
.dimensions(width, height)
.spacing(1)
.build();
// Add elements to root
Label title = Label.builder()
.text(Text.literal("My Screen"))
.dimensions(true, 32)
.build();
ScrollPanel body = ScrollPanel.ofMenu()
.dimensions(true, true)
.alignCenter()
.padding(10, 0)
.spacing(10)
.build();
Panel footer = Panel.builder()
.dimensions(true, 32)
.alignCenter()
.alignMiddle()
.padding(20, 0)
.spacing(8)
.flowAxis(FlowAxis.HORIZONTAL)
.build();
root.addChild(title);
root.addChild(body);
root.addChild(footer);
// Add elements to footer
TextField<String> searchField = TextField.ofString()
.palceholder(Text.literal("Search..."))
.width(true)
.maxWidth(200)
.build();
Button doneButton = Button.builder()
.text(Text.literal("Done"))
.onPress(self -> close())
.build();
footer.addChild(searchField);
footer.addChild(doneButton);
// Add root as drawable child
addDrawableChild(root);
}
}
Совместимость
Создатели
Детали
Лицензия:LGPL-3.0-only
Опубликован:1 неделю назад
Обновлён:7 часов назад
