Aller au contenu
galdurdocs

Ta première fenêtre

Un écran de stockage avec une recherche, une liste filtrée et deux boutons. Tu le décris, Galdur UI fait la mise en page : pas de coordonnées, pas de tailles.

⏱ 6 minGaldur UI 0.1.0Client
Avant de commencer

Il te faut un mod pour Minecraft 1.21.1 et NeoForge 21.1 (Java 21), avec Galdur UI en dépendance. Si ce n’est pas encore fait, suis le guide Installation.

Créer la fenêtre

Tout commence par GaldurLib.createWindow(). Ça renvoie une fenêtre vide.

StorageScreen.java
GaldurWindow window = GaldurLib.createWindow();window.addTitle(Component.literal("Storage"), true);   // true = centré

Les éléments s’empilent de haut en bas, dans l’ordre où tu les ajoutes. Le thème, les espacements et la taille sont gérés pour toi.

Ajouter une recherche et une liste

Chaque méthode add… renvoie un handle. Un ListHandle garde les lignes et la ligne choisie, et tu peux les changer pendant que la fenêtre est ouverte.

StorageScreen.java
List<String> ores = List.of("Coal", "Iron", "Copper", "Gold");SearchHandle search = window.addSearch(Component.literal("Search..."));ListHandle list = window.addList(4);   // 4 lignes visibleslist.setLines(ores.stream().<Component>map(Component::literal).toList());search.onChange(text -> list.setLines(ores.stream()        .filter(ore -> ore.toLowerCase().contains(text.toLowerCase()))        .<Component>map(Component::literal).toList()));

Pour réagir quand le joueur choisit une ligne, utilise onSelect. Quand les lignes sont remplacées, la sélection est effacée et onSelect reçoit -1.

Mettre des boutons sur une ligne

Par défaut, les éléments vont les uns sous les autres. addRow les met côte à côte. Ici, la rangée est centrée.

StorageScreen.java
RowHandle buttons = window.addRow(true);buttons.addButton(Component.literal("Take"), () -> take(list.getSelected()));buttons.addButton(Component.literal("Close"), window::close);

L’ouvrir

window.open() affiche la fenêtre au prochain tick client. Échap ou window.close() reviennent à l’écran ouvert avant. Essaie :

Storage
Coal
Iron
Copper
Gold
Aperçu en direct du code au-dessus. Tape dans le champ, choisis une ligne.
Côté client uniquement

Les fenêtres, widgets, écrans et le thème sont côté client. Seul api.menu se charge sur un serveur dédié : ouvre tes fenêtres depuis du code client (une touche, une commande client), jamais depuis du code serveur.

Tout ce que tu peux ajouter

Chaque méthode ci-dessous existe aussi avec un dernier paramètre boolean centered. Les rangées acceptent du texte, des boutons, des boutons icône et des cases à cocher.

MéthodeRenvoieAjoute
addTitle(text)ElementHandleUn titre, dans la police de titre Fredoka.
addText(text)ElementHandleUne ligne de texte.
addButton(label, action)ElementHandleUn bouton. L’action se lance au clic et avec Entrée.
addIconButton(icon, label, action)ElementHandleUn bouton avec un objet ou un sprite. Le libellé devient l’info-bulle.
addCheckbox(label, checked)CheckboxHandleUne case à cocher, avec son état et onChange.
addRow()RowHandleDes éléments côte à côte.
addList(visibleRows)ListHandleUne liste qui défile, avec une sélection.
addSearch(placeholder)SearchHandleUn champ de texte, avec onChange à chaque touche.
addProgress(label)ProgressHandleUne barre de progression, de 0 à 1 ou fait / total.
addTabs()TabsHandleDes onglets, chacun avec son contenu. Fenêtre uniquement.

Chaque handle peut aussi désactiver, cacher ou donner une info-bulle à son élément : voir Handles.

© 2026 Galdur Studio · galdurstudio.com · Discord · LGPL-3.0-onlyProduit non officiel. Non approuvé par Mojang ou Microsoft, ni associé à eux.