Lorsque j'ai exécuté ce qui suit, j'ai remarqué un espacement entre les nœuds; Ma recherche a révélé que - 1) Si je n'ajoute aucun texte à win1 via setwininfo, alors il n'y a pas de problème. 2) Lorsque j'inclus ce code dans une application plus grande, et lorsqu'un clic sur un bouton est récupéré ailleurs, mystérieusement l'espacement est corrigé. 3) J'ai essayé de lier les noeuds win1 & win2 au contenu de la scène - mais pas de chance.Javafx Problème de mise en page avec VBox & HBox
def mainframew: Entier = 250; def mainframeh: Entier = 500;
classe CtrlWindow étend CustomNode {
var wininfo : String;
var fsize : Integer;
var width : Integer;
public function setWinInfo(info : String) {
wininfo = info;
}
override protected function create() : Node {
var win = Group {
content: [
VBox {
content: [
Text {
font : Font {
size: fsize
}
content : bind wininfo
textAlignment : TextAlignment.CENTER // did not work
}
]
}
Rectangle {
width: width, height: 25
fill: Color.TRANSPARENT
strokeWidth : 2
stroke : Color.SILVER
}
]
}
return win;
}
}
exécution de la fonction publique (args: String []) {
var win1 = CtrlWindow {fsize: 14, largeur: mainframew}; var win2 = CtrlWindow {fsize: 14, largeur: mainframew};
win1.setWinInfo ("L'espacement entre ces nœuds"); Win2.setWinInfo ("se corrige après avoir reçu un événement");
étape {
title : "MyApp"
scene: Scene {
width: mainframew
height: mainframeh
content: [
VBox {
spacing: 0
content: [
HBox {
content: win1
}
HBox {
content: win2
}
]
}
]
}
}
Essayez de formater votre code: indent seulement avec 4 espaces. Actuellement, il est complètement illisible. –